我能防止vimrc中的设置被插件覆盖吗?

7
这个问题是关于this vim search question的补充。
我在我的 .vimrc 文件中设置了一个选项,将 $ 符号排除在单词的有效部分之外:
set iskeyword-=$

这对于大多数文件都有效,但在PHP中无效。我认为它被一个php插件覆盖了,但由于插件是在.vimrc之后加载的,我无法弄清如何覆盖此设置。我不想输入


:set isk-=$ 

每次我加载一个PHP文件。
有什么建议吗?
(如果有影响)Ubuntu 8.04 / Vim 7.1.138
摘要
两个很好的答案,谢谢!
我选择了tomalak的答案,因为它更简单,并将以下内容添加到我的~/.vimrc文件中。
autocmd FileType php setlocal isk-=$

但也要感谢Luc Hermitte。将设置放在~/vim/after/ftplugin/php.vim文件中也起作用了。
:help autocmd和:help after-directory也很有帮助。
3个回答

8
{rtp}/after/ftplugin/php.vim 中添加 :setlocal isk-=$。否则,您需要使用 :verbose set isk 来跟踪最后更改的位置,或者通过操作 :scriptnames

6

我可能会在$VIMRUNTIME\filetype.vim中的语法高亮自动命令中添加set isk-=$。不确定这是否是最好的方法。

思考一下...我想只需要在你的vimrc中添加适当的自动命令就可以了。

au   FileType php    set isk-=$

这将在FileType设置完成后执行。自动命令按照给定的顺序依次执行,所以当你把它放在vimrc文件的末尾时,它将会作为最后一个针对PHP文件的自动命令被执行。


谢谢Tomalak,我会尝试的。但是我真的希望有一些东西,不需要在每次更新Vim时都重新做。 - Ken
2
@Ken:你可以在自己的vim目录中执行他的建议,不要去动系统文件。 - Jeremy Cantrell

-2

复制您的 .vimrc 文件,例如 .vimrc.ref。

将副本保存在另一个目录中。

然后找出插件作者为什么需要覆盖您的 .vimrc 而不是:

  1. 让您知道他们正在覆盖它,并且
  2. 保存您的 .vimrc 文件的副本,以便您可以轻松回滚。

编辑:并让 http://www.vim.org/ 知道那些未经允许就擅自操作您的文件的人!


1
我认为插件没有改变他的vimrc,我认为他的意思是插件正在改变iskeyword的值,并且添加回了他删除的字符。当不编辑PHP时,iskeyword设置是正确的。 - rjray
rjray的解释是正确的 - .vimrc文件并没有被修改,但是这些值确实被插件改变了。也许“被覆盖”不是一个恰当的词汇。无论如何,感谢您的贡献! - Ken

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