Vim:使用matchadd的自定义颜色不适用于autocmd

时间:2014-10-29 16:02:34

标签: vim

我正在尝试进行自定义突出显示,并希望使用matchadd代替match。以下是我的.vimrc

的示例
autocmd BufWinEnter * call MyColors()
function! MyColors()
  let &nuw=len(line('$'))+2               " Nicer line numbers
  call matchadd('CursorLineNr', '\%81v')  " Highlight 81th symbol
  call matchadd('ErrorMsg', '.*xx.*')     " xx - red line
  call matchadd('DiffDelete', '.*vv.*')   " vv - green line
  call matchadd('Search', '.*??.*')       " ?? - yellow line
endfunction

调用该函数,但不显示突出显示。如果我通过:call MyColors之类的命令调用它,它会突出显示所有内容,但不会自动生效。

我做错了什么?

更新

猜猜是什么 - 当我启动vim然后通过:e ~/.vimrc打开文件时,它不起作用,而不是当我从命令行vim ~/.vimrc打开它时。去图......

1 个答案:

答案 0 :(得分:0)

感谢VimEnter个建议。经过一番实验后,我发现这种组合是最防弹的:

autocmd VimEnter,BufEnter,WinEnter * call MyColors()