Jordan
Jordan

Reputation: 2361

Why won't vim recognise a plugin command in the vimrc, but it will recognise it when running?

I've installed the vim-gitgutter plugin with pathogen. I can type :GitGutterLineHighlightsEnable from inside vim and line highlights are turned on, great.

But I want line highlights to be automatically enabled at startup, so I added the command to my ~/.vimrc. However when I start vim, I get "E492: Not an editor command: GitGutterLineHighlightsEnable". Once vim has started up, I can run the command.

My vimrc looks like this:

execute pathogen#infect()
colorscheme railscasts

  .. snip tabs and colors etc ..

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

Upvotes: 5

Views: 1662

Answers (3)

Ben
Ben

Reputation: 8905

As you determined yourself, plugins are processed after the .vimrc.

What you can do if you don't like using a VimEnter autocmd, is put a file in your ~/.vim/after/plugin directory for any commands that should run after plugins are loaded.

Upvotes: 6

rolnn
rolnn

Reputation: 938

Use

let g:gitgutter_highlight_lines = 1

instead of

GitGutterLineHighlightsEnable

Upvotes: 7

Jordan
Jordan

Reputation: 2361

Figured it out.

.vimrc is executed before plugins are loaded. From this related question, I changed the commands to:

autocmd VimEnter * GitGutterLineHighlightsEnable

This executes the command after vim has started up.

Upvotes: 10

Related Questions