问题描述
使用 NeoVim 编辑 .sql
文件的时候发现默认的换行是一个 8 space 的 tab. 希望能将其改成 4 spaces.
问题拆解
这其实会涉及到两个问题:
- Vim (NeoVim) 中如何修改缩进
- 如何对指定文件类型修改配置
修改缩进
关于修改缩进的需要做几个配置, 在这篇提问中可以找到解答:
1 | filetype plugin indent on |
我们只要将 2
改成 4
就能符合我们的要求. 但是还有一个问题: 如果按照这样修改, 会全局修改我们的缩进规则, 而我们只希望这个配置在指定类型的文件中生效.
查看文件类型
为了对指定文件做配置, 我们首先需要知道 Vim 认为当前文件属于什么类型. 可以在 Normal 状态下使用命令:
1 | :set filetype? |
如果在 .sql
文件中使用命令, 会得到结果:
1 | filetype=sql |
即 filetype
是 sql
配置指定文件类型
在 Vim 的配置目录 ~/.config/nvim
(Vim为 ~/.vimrc
) 下新建 ftplugin
目录, 根据文件类型 (上面示例中为 sql
) 新建配置文件, 在其中添加配置.
这里需要注意的是, 配置参数时使用 setlocal
而非 set
来控制影响范围. 具体用法请参考这篇回答.
所以我们需要在 ~/.config/nvim/ftplugin/sql.vim
中写入配置:
1 | " On pressing tab, insert 4 spaces |
重载编辑器
如果想在不关闭编辑器的情况下重载, 可以使用 source
命令加载主配置文件, 已 ~/.config/nvim/init.vim
为例:
1 | source ~/.config/nvim/init.vim |
#tech/vim