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

All*_*lan 3 vim vim-syntax-highlighting

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

如何使用vim语法/高亮系统中的构建来完成(我不想使用Highlight插件)

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

dwa*_*ter 5

如果需要,您可以使用match和。highlight

例子:

    :hi MyAsserts term=bold ctermbg=Cyan
    :match MyAsserts /assert(.*)/
Run Code Online (Sandbox Code Playgroud)

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>/
Run Code Online (Sandbox Code Playgroud)

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


Ing*_*kat 5

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

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

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

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