Я пытаюсь сделать пользовательскую подсветку и хочу использовать matchadd
вместо match
. Вот пример из моей .vimrc
:Vim: пользовательские цвета с 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
, он выделяет все, как должен, просто не работает автоматически.
Что я делаю неправильно?
Update
Угадайте, что - это работает, когда я запускаю vim
, а затем открыть файл с помощью :e ~/.vimrc
, не тогда, когда я открываю его из командной строки vim ~/.vimrc
. Go figure ...
Хм, у меня работает ... –
'BufWinEnter' не серебряная пуля это, кажется, использовать' autocmd BufEnter, WinEnter * вызов MyColors() '. – romainl
Поскольку совпадения являются локально локальными, 'WinEnter, VimEnter' должен быть наиболее уместным (последний, поскольку первый не запускается для первого). –