我在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这是相同的字符串
: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窗口.