2013-04-24 27 views
2

覆盖我的一个项目的ftplugin设置的最佳方式是什么,即特定目录下的文件?覆盖一个目录下的文件的ftplugin

例如,我在我的〜/ .vim/ftplugin/javascript.vim中设置了setlocal tabstop = 4,因为我公司所有的项目都有这个空白策略。

但是在一个个人项目中,我想在我的.js文件中使用tabstop = 2。

我知道我可以在该项目的目录中放置一个自定义的.vimrc文件,并启用vim的exrc选项以使其读取.vimrc文件。这是最好的方法吗?

+1

您的问题是重复的:http://stackoverflow.com/questions/456792/vim-apply-settings-on-files-in-directory?rq=1 – 2013-04-24 17:46:37

+0

是吗?我问的是重写ftplugin行为,而不仅仅是.vimrc文件。 – acksys 2013-04-25 03:42:43

+1

您正在询问有关覆盖特定目录中文件的vim设置。除非您想在激活某些设置之前检查文件类型,否则您将得到相同的答案。 其他讨论中缺少的唯一东西是.exrc仅限于一个目录,而plugin-solutions更改整个目录层次结构中的设置。 快速覆盖.vimrc或ftplugin之间的区别没有任何意义:请参阅这两个_vimrc_local * .vim文件:https://github.com/LucHermitte/Rasende。他们定义项目设置(项目dirs,映射,...), – 2013-04-25 11:02:07

回答

3

set exrc将读取当前目录中的.vimrc文件,但也会读取.vim目录下的结构。所以,你可以添加

myproject/.vim/after/ftplugin/javascript.vim

到您的项目;当你打开myproject目录中的文件时,它会像你的本地文件一样工作。

+0

谢谢。我知道使用这种方法对安全性有一些担忧。你认为这是最安全的方法吗? – acksys 2013-04-25 03:45:13

+0

@acksys:说实话,我只将这种方法用于项目特定的语法高亮。 – Akobold 2013-04-25 14:19:16

+0

有一个'set secure'选项,它试图阻止从这些本地文件执行更危险的代码,我想。 – MichaelJones 2014-12-24 13:54:11