为什么vim不会识别vimrc中的插件命令,但它在运行时会识别它?

问题描述:

我已经安装了带病原体的vim-gitgutter plugin。 我可以在vim中键入:GitGutterLineHighlightsEnable,并且线条亮点打开,很棒。为什么vim不会识别vimrc中的插件命令,但它在运行时会识别它?

但是我想让行高亮在启动时自动启用,所以我将该命令添加到我的~/.vimrc。但是当我启动vim时,我会得到“E492:不是编辑器命令:GitGutterLineHighlightsEnable”。一旦vim启动,我可以运行该命令。

我的vimrc看起来是这样的:

execute pathogen#infect() 
colorscheme railscasts 

    .. snip tabs and colors etc .. 

GitGutterLineHighlightsEnable 
hi GitGutterAddLine guibg=#222F22 
hi GitGutterChangeLine guibg=#222239 
hi GitGutterDeleteLine guibg=#2F2222 

当你确定自己,插件.vimrc里后处理。

如果您不喜欢使用VimEnter autocmd,您可以执行的操作是将文件放入您的〜/ .vim/after/plugin目录中,以便加载插件后运行的任何命令。

想通了。

.vimrc被执行之前插件被加载。从this related question,我将命令更改为:

autocmd VimEnter * GitGutterLineHighlightsEnable 

这会在vim启动后执行命令。

使用

let g:gitgutter_highlight_lines = 1

代替

GitGutterLineHighlightsEnable