Vim是否在加载vimrc后加载插件?

25

我正在尝试覆盖插件中设置的高亮。插件做了这件事:

highlight! link WordUnderTheCursor Underlined   
首先,我不知道将 ! 添加到 highlight 是否会有任何作用。但这并不重要。
在 vimrc 中做这样的事情。
highlight clear WordUnderTheCursor                             
highlight WordUnderTheCursor cterm=bold ctermfg=254 ctermbg=160

似乎不会影响行为。

只有当我直接修改vimrc中的Underlined样式(感觉不对)时,更改才会生效。

这是否证明插件是在vimrc运行之后运行的?

如何取消链接样式?我无法确定这是否只是插件做了一些创造性和不支持的事情,还是这是正常的Vim行为。

2个回答

42
是的。vimrc在插件之前加载。
如果你查看:h initialization,你会发现第3步是加载vimrc,第4步是加载插件。
你也可以通过查看:scriptnames的输出来看到vimrc在插件之前被加载。scriptnames按照它们被加载的顺序列出所有已加载的脚本,并且vimrc是第一个被加载的东西。(请参阅:h :scriptnames)。
要修复语法高亮,您只需要在插件被加载后运行高亮命令。为了做到这点,您需要将文件放置在您的 .vim 目录下的 after 文件夹中。(请参考 :h after-directory)
因此,请创建以下内容的文件 .vim/after/plugin/hicursorwords.vim
highlight clear WordUnderTheCursor                             
highlight WordUnderTheCursor cterm=bold ctermfg=254 ctermbg=160

这将导致插件在更改插件设置之前被引用。 (当然,这是假设你不想编辑该插件)

2
太棒了,谢谢。我已经有一些“after”脚本覆盖语法设置,所以这很好地适应了整个方案。 - Steven Lu
请注意,_gvimrc(用于图形化界面)在插件之后被读取。因此,您必须在 _vimrc 中输入要考虑的命令,而不是在 _gvimrc 中。 - Olivier Faucheux

12
除了脚本名称之外,要查看vim在启动时运行的顺序,您还可以使用: vim --startuptime <file> 这样它将记录所有任务的顺序以及每个任务所需的时间。

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