Answers:
最好的方法是将这些设置放入~/.vim/after/ftplugin/<filetype>.vim
。
对于HTML(假设您需要4个字符宽的标签):
~/.vim/after/ftplugin/html.vim
setlocal shiftwidth=4
setlocal softtabstop=4
setlocal noexpandtab
使用ftplugin比使用自动命令更可取,因为Vim本身已经进行了文件类型检查并且已经尝试提供足够的ftplugin,因此没有理由强制进行更多检查并重新实现。
-编辑-
假设您已经拥有filetype plugin on
了vimrc
(应该这样做),Vim将尝试检测所编辑文件的文件类型,一旦找到正确的文件类型并为缓冲区设置了文件,请尝试在以下标准位置获取相应的ftplugin:
$VIMRUNTIME/ftplugin/html.vim
~/.vim/ftplugin/html.vim
~/.vim/ftplugin/after/html.vim
所有这些都是自动发生的,因此,如果您的文件类型被Vim识别,则绝对没有理由添加任何文件类型检测逻辑:只需将设置添加到正确的ftplugin即可。
filetype plugin indent on
你的vimrc
。
filetype plugin on
设置好,vim的路径就在其路径中包含ftplugin/<filetype>.vim
和after/ftplugin/<filetype>/vim
文件。
augroup
允许您将相关自动命令分组为命名组。(请参阅此处以了解有关augroup
自动命令组的信息。)我们使用s来添加自动命令~/.vimrc
,这种方式不会在每次获取源代码时都添加重复项。
augroup vimrc
autocmd!
augroup END
autocmd vimrc FileType html setlocal shiftwidth=4 tabstop=4