有谁知道如何突出显示整行(如果有或搜索后有匹配项)。
我搜索/user
现在,如果有匹配项,我想突出显示整行。
编辑
我想像搜索突出显示一样使用突出显示。
我不想使用突出显示组。
最佳答案
高亮行的替代方法可能是使用 quickfix
列表。例如,执行以下操作会将与模式 /user/
匹配的所有行放入当前文件 (%
) 的快速修复列表中。
:vimgrep /user/ %
您可以通过执行 :copen
在单独的窗口中显示 quickfix
列表的内容。您可以通过 :cnext
、:cprev
和 friend 在匹配行之间移动。个人推荐Tim Pope的优秀unimpaired.vim插件提供一些相当漂亮和自然的感觉映射,如 [q
和 ]q
以在 quickfix
列表中移动。您还可以添加 g
标志以在每行中查找多个匹配项,并将它们也添加到 quickfix
列表中。
您可能希望映射到此 vimgrep
命令以使其更快一些。我个人在我的 ~/.vimrc
nnoremap <leader>/ :vimgrep/<c-r>//g %<cr>:copen<cr>
使用:vimgrep
命令的一个缺点是它需要一个已保存的文件,因此必须首先保存未保存的缓冲区。您可以通过组合使用 :global
和 :cgetexpr
来解决这个问题,如下所示。
:cexpr []
:g//caddexpr expand("%").":".line(".").":".getline(".")
然而,也许您真的只是想用匹配来突出显示行,而不是使用 quickfix
列表。我建议像这样使用 :match
:match Search /.*user.*/
您可以使用任何您想要的高亮组。我选择 Search
似乎很合适。要关闭突出显示,只需执行 :match
而不带任何参数。
我个人更喜欢使用 :vimgrep
和 quickfix
列表,但您的需求可能与我的不同。
有关更多帮助,请参阅:
:h quickfix
:h :vimgrep
:h :cnext
:h :cexpr
:h :caddexpr
:h :match
关于vim - 有匹配项时突出显示整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383726/