我试图学习使用Vim。我喜欢缩进4个空格,但是对于某些语言使用2个空格,例如Nim和MoonScript。我尝试将其添加到我的.vimrc
:
autocmd BufNewFile,BufRead,BufEnter *.nim :setlocal tabstop=2 shiftwidth=2 softtabstop=2
问题?它没有做任何事情!所有这一切都是因为当我按下它时标签什么都不做!我做错了什么?
答案 0 :(得分:2)
autocmd BufNewFile,BufRead *.nim setlocal tabstop=2 shiftwidth=2 softtabstop=2
这应该有效(在通过:e!
重新启动Vim /重新编辑现有文件之后),但它会将文件类型检测与文件类型设置混合。 Vim有一个名为 filetype 的中间抽象,您应该使用它。使用它,您可以将*.nim
等文件全局映射到文件类型nim
,然后通过:autocmd FileType
或{em>文件类型插件定义设置{{1 (对于后者,您需要~/.vim/ftplugin/nim.vim
中的:filetype plugin on
。
因此,在~/.vimrc
中创建文件类型检测:
~/.vim/ftdetect/nim.vim
然后,在autocmd BufRead,BufNewFile *.nim setfiletype nim
:
~/.vim/ftplugin/nim.vim
您可以通过setlocal tabstop=2 shiftwidth=2 softtabstop=2
输出检查这些是否已正确加载。重新启动Vim后,这应该可以,并且您可以向后一个文件添加其他设置。如果您的文件类型来自另一个文件类型,您也可以在其中添加:scriptnames
(例如)来获取这些设置。