我发现了VIM搜索的一个很好的功能,即列出所有搜索结果和相应的行号。管道搜索结果到VIM中的其他选项卡/窗口/缓冲区
例如:
:g/for.*bar/#
问:是否有一个“简单”的方法来管/把这个到另一个窗口/标签/缓冲?
干杯!
我发现了VIM搜索的一个很好的功能,即列出所有搜索结果和相应的行号。管道搜索结果到VIM中的其他选项卡/窗口/缓冲区
例如:
:g/for.*bar/#
问:是否有一个“简单”的方法来管/把这个到另一个窗口/标签/缓冲?
干杯!
我不知道如何管输出:g/for.*bar/#
到一个新的缓冲区,但我知道如何使用vimgrep
获得很多相同的结果。
尝试:
vimgrep "for.*bar" %
:copen
现在你有所有搜索结果的缓冲区,你可以在它们之间有:cn
和:cp
甚至导航。
看看:help quickfix
看起来像这个,我正在寻找。你可以如此善意地解释'%'的含义吗?究竟是什么意思是'copen',我的意思是,vimgrep的结果在哪里? – ezdazuzena
@ezdazuzena当然在命令模式下''''''''可以替换为当前文件的路径。 – Benj
谢谢。关于我的问题的第二部分,我在这里找到了答案:http://blogs.gurulabs.com/stuart/archives/2006/08/vimgrep-copen.html – ezdazuzena
我不知道如何将直接输出重定向到一个缓冲,但您可以使用redir
将其发送到一个文件:
:redir > file
:g/for.*bar/#
:redir END
或一个寄存器:
:redir @a
:g/for.*bar/#
:redir END
有关更多信息,请参见:help :redir
。
...然后寄存器可以被放入::put!一个'变成一个新的缓冲区。 –
称赞接受的答案:我做了一个映射,直接打开上次搜索与\ 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
您的意思是“将此列表和数字放入新缓冲区中”? – romainl
@romaini:的确如此。例如进入拆分窗口..要复制的东西,滚动。现在我得到的名单,但当我移动它“消失”。 – ezdazuzena