根据文件类型设置选项卡宽度

时间:2015-06-02 17:53:09

标签: vim

我试图学习使用Vim。我喜欢缩进4个空格,但是对于某些语言使用2个空格,例如Nim和MoonScript。我尝试将其添加到我的.vimrc

autocmd BufNewFile,BufRead,BufEnter *.nim :setlocal tabstop=2 shiftwidth=2 softtabstop=2

问题?它没有做任何事情!所有这一切都是因为当我按下它时标签什么都不做!我做错了什么?

1 个答案:

答案 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(例如)来获取这些设置。