突出显示包含搜索词的行

hmj*_*mjd 2 vim

我知道可以配置vim来突出显示搜索到的单词的所有匹配项.

但是,是否可以突出显示搜索到的单词的整个行?如果是这样,怎么样?

Ing*_*kat 9

如果您通常希望突出显示当前行:

:set cursorline
Run Code Online (Sandbox Code Playgroud)

如果您只想突出显示搜索,唯一简单的方法是扩展搜索模式以覆盖整行:

:set hlsearch
:let @/ = '.*'.@/.'.*'
Run Code Online (Sandbox Code Playgroud)

请注意,在n/上N,光标现在将跳转到行的开头,而不是匹配的单词.此外,您将无法再:%s//...替换匹配的单词(不重复搜索模式).


rom*_*inl 5

确切的解决方案可能取决于您的目标:

您想让匹配的线条更加突出吗?

您想知道行号以供进一步使用吗?

您想直接按照这些路线采取行动吗?

您可以使用快速修复窗口列出包含匹配项的行:

:vim! foo . | copen
Run Code Online (Sandbox Code Playgroud)

您可以使用以下:global命令列出或对包含匹配项的每一行执行操作:

:g/foo<CR>          " list the lines
:g/foo/<Ex command> " act on each line
Run Code Online (Sandbox Code Playgroud)

  • +1 这太棒了。我只是想将匹配的行作为组查看,因此 `:g/foo` 是完美的。 (3认同)