2014-10-29 37 views
0

我正在嘗試自定義高亮顯示,並且想要使用matchadd而不是match。這裏是我的一個樣本.vimrcVim:使用matchadd自定義顏色不適用於autocmd

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那樣從命令中調用它,它會突出顯示所有內容,只是不會自動工作。

我在做什麼錯?

更新

你猜怎麼着 - 當我通過:e ~/.vimrc推出vim,然後打開文件,而不是當我打開它在命令行vim ~/.vimrc它的工作原理。去圖...

+0

嗯,對我的作品...... – 2014-10-29 16:17:36

+0

'BufWinEnter'是不是它似乎是銀彈,使用'的autocmd BufEnter,WinEnter事件*通話MyColors()'。 – romainl 2014-10-29 16:20:07

+0

由於匹配窗口是本地的,所以'WinEnter,VimEnter'應該是最合適的(後者因爲前者不是第一個被觸發)。 – 2014-10-29 16:23:14

回答

0

感謝您的VimEnter建議。試驗了一下後,我發現這個組合是最防彈:

autocmd VimEnter,BufEnter,WinEnter * call MyColors() 
相關問題