4

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

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

4

5 回答 5

9

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

:set cursorline

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

:set hlsearch
:let @/ = '.*'.@/.'.*'

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

于 2012-09-27T10:08:15.073 回答
4

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

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

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

你想直接在这些线上采取行动吗?

您可以使用 quickfix 窗口列出包含匹配项的行:

:vim! foo . | copen

您可以使用该:global命令列出或作用于包含匹配项的每一行:

:g/foo<CR>          " list the lines
:g/foo/<Ex command> " act on each line
于 2012-09-27T10:16:24.873 回答
2
:set hlsearch

突出显示搜索的单词。

另请注意,您可以突出显示当前行,即光标所在的行。因此,当您在比赛之间移动时,您移动到的完整行将突出显示。

于 2012-09-27T09:40:48.287 回答
0

你可以安装这个插件highlight.vim。其中一个快捷键<C-h><C-j>允许您突出显示包含先前搜索模式的行。

于 2018-06-17T06:27:43.400 回答
-1

请使用这个:

要突出显示文件中的所有搜索模式匹配项,请设置以下选项:

:set hlsearch

要暂时禁用突出显示,请使用:

:nohlsearch
于 2012-09-27T09:41:54.530 回答