在vim中的当前缓冲区上自定义语法高亮显示

时间:2012-11-07 15:04:31

标签: vim vim-syntax-highlighting

我不时会在当前缓冲区上应用一些自定义的额外语法高亮显示。

如何使用vim语法/高亮系统中的内置功能(我不想使用Highlight插件)

例如,我想强调当前缓冲区中的所有断言语句。

2 个答案:

答案 0 :(得分:5)

如果突出显示仅适用于某些文件类型(例如Java),并且您一直想要它,我会使用:syn match ...中的~/.vim/after/syntax/java.vim定义扩展原始语法。

对于自发突出显示,请使用:match(或:2match),如 dwalter 所示。

如果您要编写更详细的映射,可能使用切换开/关逻辑,请使用matchadd() / matchdelete()

最后,如果您需要突出显示任意单词/字符串,比如使用文本标记标记文档,我建议使用像Mark这样的插件(我已经接管了维护)。< / p>

答案 1 :(得分:4)

如果需要,您可以使用matchhighlight

示例:

    :hi MyAsserts term=bold ctermbg=Cyan
    :match MyAsserts /assert(.*)/

使用青色背景突出显示您的assert()语句。 没有任何参数的:match将重置它。

有关highlightmatch的更多信息,请查看文档 :help hi:help match

要重复使用突出显示,您可以将这些命令保存在文件中,并使用:source file.vim随时加载它。另一种方法是在.vimrc

中定义一个命令
     hi MyAsserts ctermbg=Cyan
     command -bar -nargs=0 HiAsserts match MyAsserts /assert(.*)/
     "highlight any given regex
     command -bar -nargs=1 HiIt match MyAsserts /<args>/

并使用:HiAsserts调用它以突出显示您的assert()语句或:HiIt foo以突出显示缓冲区中的每个foo