我想在Vim/gVim中搜索多个字符串,并使它们以不同的颜色高亮显示。是否可以通过原生的Vim或插件来实现此功能?
我想在Vim/gVim中搜索多个字符串,并使它们以不同的颜色高亮显示。是否可以通过原生的Vim或插件来实现此功能?
进入搜索模式,即键入 '/',然后键入 \v,后跟以 '|'(管道)分隔的要搜索的单词。
例如:/\vword1|word2|word3
进入搜索模式,然后键入由 '\|' 分隔的要搜索的单词。
例如:/word1\|word2\|word3
这可以手动完成,不需要任何脚本,适用于两种搜索模式。
:match Search /pattern/
:match Search /<CTRL-R>/ # highlight the current search pattern
搜索是高亮显示组的名称,使用自动完成来选择另一个组以不同颜色进行高亮显示。
:match <TAB>
:match <TAB> # completion will list all highlight group
当您无法使用自己的vim配置时,这可能会很方便。
:match none # clear the match pattern to stop highlighting
要在vim中搜索多个字符串,可以这样做:
/search1\|search2
这个方法有效,并且会用相同的颜色突出显示search1
和search2
。
你必须在vim编辑器中执行此操作。
试试使用"Highlight multiple words",它使用了matchadd()
函数。
\+m
(或双击)。每次都会得到不同的颜色。 - KcFnMi是的,您可以直接使用matchadd()
进行高亮。
例如,要添加一个突出显示尾随空格的效果:
:highlight ExtraWhitespace ctermbg=grey guibg=grey
:call matchadd('ExtraWhitespace', '\s\+$', 11)
浏览所有匹配项:
:echo getmatches()
要删除匹配项,请使用matchdelete()
。例如:
:call matchdelete(7)
MultipleSearch :同时突出显示多个搜索,每个搜索用不同的颜色。
http://www.vim.org/scripts/script.php?script_id=479
:Search <pattern1> //will highlight all occurences of <pattern1> in the current buffer.
A subsequent :Search <pattern2> will highlight all occurences of <pattern2> in the current buffer.
:%s /red\|green\|blue/
不过,我不确定如何为不同的关键字保留不同的颜色。谢谢。
我的Mark插件可以同时使用不同颜色突出显示多个单词,就像内置搜索一样。它带有许多映射和命令,可以保留模式,并支持多个调色板。
我更喜欢高亮插件,它简单而且足够,可以自动用不同的颜色突出显示不同的单词。