有时我想在当前缓冲区上应用一些自定义的额外语法突出显示。
如何使用内置 vim 语法/突出显示系统来完成(我不想使用突出显示插件)
例如,我想突出显示当前缓冲区中的所有断言语句。
有时我想在当前缓冲区上应用一些自定义的额外语法突出显示。
如何使用内置 vim 语法/突出显示系统来完成(我不想使用突出显示插件)
例如,我想突出显示当前缓冲区中的所有断言语句。
如果突出显示仅适用于某些文件类型(例如 Java),并且您一直想要它,我会扩展原始语法,并将:syn match ...
定义放在~/.vim/after/syntax/java.vim
.
对于自发突出显示,请使用:match
(或:2match
),如dwalter所示。
如果您要编写更精细的映射,可能带有切换开/关逻辑,请使用matchadd()
/ matchdelete()
。
最后,如果您需要突出显示任意单词/字符串,例如使用文本标记标记文档,我建议您使用Mark等插件(我已经接管维护)。
如果需要,您可以使用match
和highlight
。
例子:
:hi MyAsserts term=bold ctermbg=Cyan
:match MyAsserts /assert(.*)/
assert()
用青色背景
突出你的陈述。:match
没有任何参数将重置它。
有关两者的更多信息,或通过highlight
或match
查看文档
: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