autocmd FileType与ftplugin的区别

18

将以下内容放置有什么区别:

autocmd FileType ruby setlocal ts=2

我在~/.vimrc中添加以下内容:

setlocal ts=2

~/.vim/ftplugin/ruby.vim中吗?

如果没有区别,那么特定于一种文件类型的命令应该放在哪里?


这不是一个好的例子,因为g:rubycomplete_buffer_loading是一个全局变量,应该在vimrc中放置,而不是在之前加上autocmd Filetype ruby - ZyX
1个回答

15
据我所知,这两者之间实际上没有什么区别。
我更喜欢把这样的命令放在“ftplugin”中,并保持我的主要“.vimrc”与语言无关...但并没有硬性规定。将它们放在您的“vimrc”中的一个优点是,您的vim设置将更容易移动(例如,您只需复制您的“.vimrc”,而不是“.vimrc”+“ .vim”即可在新机器上获取所有vim设置)。显然,将它们放在您的“.vimrc”中也会有轻微的性能损失(即,它们将为每个文件而不仅仅是Ruby文件加载和执行)...但我不会真的担心这个。

1
谢谢你的回答。我一直把代码放在 ftplugin 中,我想我会继续这样做,以保持我的 .vimrc 简单。 - Zameer Manji
1
你怎么知道有“性能惩罚”?你能解释一下这两种方法是如何工作的(实现细节)吗? - ma11hew28

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接