【发布时间】:2010-10-16 19:23:41
【问题描述】:
我想在 Vim/gVim 中搜索多个字符串,并用不同的颜色突出显示它们。有没有办法使用开箱即用的 Vim 或插件来做到这一点?
【问题讨论】:
标签: vim highlighting
我想在 Vim/gVim 中搜索多个字符串,并用不同的颜色突出显示它们。有没有办法使用开箱即用的 Vim 或插件来做到这一点?
【问题讨论】:
标签: vim highlighting
试试“Highlight multiple words”,它使用matchadd()。
【讨论】:
\+m(或双击)您想要(取消)突出显示的每个单词。而且你每次都会得到不同的颜色。
MultipleSearch2 是另一个集成 vim 搜索的脚本: http://www.vim.org/scripts/script.php?script_id=1183
【讨论】:
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.
【讨论】:
这可以针对两种搜索模式手动完成,无需任何脚本。
: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
【讨论】:
是的,您可以直接使用matchadd()。
添加一个亮点,例如。对于尾随空格:
:highlight ExtraWhitespace ctermbg=grey guibg=grey
:call matchadd('ExtraWhitespace', '\s\+$', 11)
查看所有匹配项:
:echo getmatches()
要删除匹配项,请使用matchdelete()。例如:
:call matchdelete(7)
【讨论】:
我的Mark plugin 可以同时以不同颜色突出显示多个单词,就像内置搜索一样。它带有许多映射和命令,允许持久化模式,并支持多种调色板。
【讨论】:
我更喜欢高亮插件,简单又够用,可以自动用不同的颜色高亮不同的单词。
【讨论】:
要在 vim 中搜索多个字符串,您可以这样做:
/search1\|search2
这有效,并且将突出显示search1 和search2,但颜色相同。
您必须在 vim 编辑器中执行此操作。
【讨论】:
在 vim 编辑器中突出显示多个单词有两种简单的方法。
进入搜索模式,即输入“/”,然后输入\v,后跟要搜索的单词,用“|'(管道)。
例如:/\vword1|word2|word3
进入搜索模式并键入要搜索的字词,以“\|”分隔。
例如:/word1\|word2\|word3
基本上,第一种方法会将您置于正则表达式模式,这样您就无需在用于搜索的每个管道或其他分隔符之前添加任何额外的反斜杠。
【讨论】:
:%s /red\|green\|blue/
我不确定如何为不同的关键字保留不同的颜色。谢谢。
【讨论】: