我找到了一个很好的VIM搜索功能,即列出所有搜索结果和相应的行号。
例如:
:g/for.*bar/#
问题:是否有一种“简单”的方式将其传输/放入另一个窗口/标签/缓冲区?
干杯!
答案 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