![使用不同颜色突出显示搜索(hls)多个搜索词的匹配项](https://linux22.com/image/1406478/%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E9%A2%9C%E8%89%B2%E7%AA%81%E5%87%BA%E6%98%BE%E7%A4%BA%E6%90%9C%E7%B4%A2%EF%BC%88hls%EF%BC%89%E5%A4%9A%E4%B8%AA%E6%90%9C%E7%B4%A2%E8%AF%8D%E7%9A%84%E5%8C%B9%E9%85%8D%E9%A1%B9.png)
在编写代码时,我经常会搜索具有相似名称的变量的出现情况。例如,查找所有匹配var1
和的变量var2
,如下所示:
/\<var1\>\|\<var2\>
现在我真的很喜欢 Vim 的突出显示搜索功能,因为一旦我进行搜索,所有匹配的实例都会以黄色弹出。
有没有办法为搜索字符串中的不同术语分配不同的颜色?也就是说,所有匹配项都为var1
黄色,所有匹配项var2
都为绿色?
答案1
使用该'hlsearch'
选项,则不需要,它们都必须以相同的颜色显示。但是,您可以使用该:match
功能。例如:
:match TODO /var1/
:2match Type /var2/
:3match Comment /var3/
当然,这比直接'hlsearch'
匹配更麻烦,因为它要求您知道已经定义了哪些语法着色组,或者定义您自己的语法着色组。此外,您只能通过这种方式进行最多三个单独的匹配。如果您需要更多,则必须使用matchadd()
。
看:
:help :match
:help :highlight
:help highlight-groups
:help matchadd()
答案2
内置搜索无法做到这一点,但有些插件可以让你使用不同的颜色,例如我自己的标记插件。(插件页面有替代插件的链接。)其中大多数使用该matchadd()
功能,确保该功能全局应用于所有窗口,并通过映射和命令提供类似搜索的界面。