1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 05:30:07 +08:00
SpaceVim/docs/cn/layers/format.md
2020-10-04 23:02:30 +08:00

82 lines
2.1 KiB
Markdown

---
title: "SpaceVim format 模块"
description: "这一模块为 SpaceVim 提供了代码异步格式化功能,支持高度自定义配置和多种语言。"
lang: zh
---
# [可用模块](../) >> format
<!-- vim-markdown-toc GFM -->
- [模块简介](#模块简介)
- [启用模块](#启用模块)
- [模块设置](#模块设置)
- [模块选项](#模块选项)
- [全局选项](#全局选项)
- [快捷键](#快捷键)
<!-- vim-markdown-toc -->
## 模块简介
`format` 模块为 SpaceVim 提供代码格式化的功能,使用了 Vim8/neovim 的异步特性。引入了插件 [neoformat](https://github.com/sbdchd/neoformat)。
## 启用模块
`format` 模块默认已经启用,如果需要禁用该模块,可以在配置文件中添加如下配置:
```toml
[[layers]]
name = "format"
enable = false
```
## 模块设置
### 模块选项
- **`format_on_save`**: 这一模块选项是用于设置是否在保存文件时自动进行格式化,默认是禁用的,
如果需要启用该功能,可以在设置文件中加入以下内容:
```toml
[[layers]]
name = "format"
format_on_save = true
```
这一选项可以被语言模块中的 `format_on_save` 选项所覆盖。比如,为所有文件类型启用自动格式化,但是 Python
除外:
```toml
# 启用 format 模块
[[layers]]
name = 'format'
format_on_save = true
# 启用 lang#java 模块
[[layers]]
name = 'lang#python'
format_on_save = false
```
### 全局选项
`neoformat` 是一个格式化框架插件,该插件的所有自身选项可以在启动函数中进行设置,可以预读 `:help neoformat`
获取完整帮助。
以下是一个为 Java 文件设置格式化命令的配置,以下配置已经包含在 `lang#java` 模块内了:
```viml
let g:neoformat_enabled_java = ['googlefmt']
let g:neoformat_java_googlefmt = {
\ 'exe': 'java',
\ 'args': ['-jar', '~/Downloads/google-java-format-1.5-all-deps.jar', '-'],
\ 'stdin': 1,
\ }
```
## 快捷键
| 快捷键 | 功能描述 |
| --------- | -------------------------- |
| `SPC b f` | 格式化当前文件或者选中内容 |