在VIM中,我需要执行一个简单的任务 - 突出显示"("和")".我可以通过发出两个命令轻松地做到这一点:
:syn match really_unique_name display "[()]" :hi really_unique_name guifg=#FF0000
但是如果我添加相同的命令(当然没有':')来清空.vimrc并重新启动VIM - "("和")"在.cpp文件中不再突出显示.看来,如果我创建/加载.cpp文件,VIM会加载语法文件,覆盖我的自定义高亮显示.如何在我的.vimrc文件中配置高亮显示,以便它在标准语法定义之后发生,或者不受标准语法定义的影响?
有四种选择(其中两种已被其他人建议):
after
在vimfiles中使用结构(〜/ .vim/after/syntax/cpp.vim):
:help after-directory
使用匹配当前窗口:
:match really_unique_name "[()]"
再次对当前窗口使用matchadd(),但如果您以后需要,则可以删除单个匹配:
:call matchadd('really_unique_name', "[()]") " Or :let MyMatchID = matchadd('really_unique_name', "[()]") " and then if you want to switch it off :call matchdelete(MyMatchID)
安装Dr Chip的rainbow.vim插件,根据缩进级别获得不同颜色的支撑突出显示.
对于这种情况,我建议选项1,因为它看起来像你想要使它成为一般语法的一部分.如果你想使用匹配并且你希望它们是缓冲区特定的(而不是特定于窗口的),你需要这样的东西:
function! CreateBracketMatcher() call clearmatches() call matchadd('really_unique_name', "[()]") endfunc au BufEntercall CreateBracketMatcher()
有关更多信息,请参阅:
:help after-directory :help :match :help matchadd() :help matchdelete() :help clearmatches() :help function! :help autocmd :help autocmd-buffer-local :help BufEnter
您可能也对我对这个问题的回答感兴趣,这个问题涵盖了更多的一般操作员突出显示.
将设置放在〜/ .vim/after/syntax/cpp.vim中