显示与vim中的模式匹配的所有行

Sag*_*ain 1 regex vim

我在vim中的文件中搜索特定字符串,并且我希望显示所有具有匹配字符串的行,可能在另一个vim窗口中.

目前我这样做:

搜索'string'

/string
Run Code Online (Sandbox Code Playgroud)

并移动到下一个匹配的字符串

n or N
Run Code Online (Sandbox Code Playgroud)

Bur,我想在一个地方找到所有匹配字符串的行.

例如:

1这是一个字符串

2这里没什么

3这是相同的字符串

我希望第1和第3行显示如下,突出显示 string

1这是一个字符串

3这是相同的字符串

rom*_*inl 6

:g/pattern/#<CR>
Run Code Online (Sandbox Code Playgroud)

列出所有匹配的行pattern.然后你可以:23<CR>跳转到第23行.

:ilist pattern<CR>
Run Code Online (Sandbox Code Playgroud)

是一种替代方案,可以过滤掉评论并在包含范围内工作

以下命令:

:vimgrep pattern %|cwindow<CR>
Run Code Online (Sandbox Code Playgroud)

将使用Vim的内置类似grep的功能pattern在当前文件(%)中搜索并在quickfix窗口中显示结果.

:grep pattern %|cwindow<CR>
Run Code Online (Sandbox Code Playgroud)

做同样但使用外部程序.请注意,:grep:vimgrep使用文件,而不是缓冲区.

参考:

:help :g
:help include-search
:help :vimgrep
:help :grep
:help :cwindow
Run Code Online (Sandbox Code Playgroud)

FWIW,我的插件VIM-的QList结合的特点:ilist quickfix窗口.