管道搜索结果到VIM中的其他选项卡/窗口/缓冲区

时间:2012-11-09 10:50:48

标签: search vim pipe

我找到了一个很好的VIM搜索功能,即列出所有搜索结果和相应的行号。

例如:

:g/for.*bar/#

问题:是否有一种“简单”的方式将其传输/放入另一个窗口/标签/缓冲区?

干杯!

3 个答案:

答案 0 :(得分:7)

我不知道如何将:g/for.*bar/#的输出传输到新缓冲区,但我知道如何使用vimgrep来获得相同的结果。

尝试:

vimgrep "for.*bar" %
:copen

现在您有一个包含所有搜索结果的缓冲区,您甚至可以使用:cn:cp在它们之间导航。

查看:help quickfix

答案 1 :(得分:2)

我不知道如何将输出直接重定向到缓冲区,但您可以使用redir将其发送到文件:

:redir > file
:g/for.*bar/#
:redir END

或注册:

:redir @a
:g/for.*bar/#
:redir END

有关详情,请参阅:help :redir

答案 2 :(得分:1)

赞美接受的答案:我做了一个映射,使用\ ss(显示搜索)直接在quickfix窗口打开最后一个搜索,将其添加到.vimrc:

" show last search results on the quickfix window at windows bottom
nnoremap <silent><leader>ss :vimgrep /<C-r>\// % <CR> :botright copen <CR>

BR