:vimgrep [search text] %
Run Code Online (Sandbox Code Playgroud)
和 copen 给出了缓冲区中所有[搜索文本]的一个很好的列表。
有没有办法在结果中包含每行匹配的前行和后行?我正在寻找折叠来实现这一点,但还没有弄清楚......
为了出现在快速修复窗口中,:vimgrep还需要匹配上下文行。将“上方和下方匹配”构建到搜索正则表达式中会很困难,而且仍然没有折叠。
如果您使用:grep代替:vimgrep,则可以指定上下文 ( -C NUM),但这也不会自动折叠。
另一种选择是对快速修复结果进行后处理(通过:autocmd QuickFixCmdPost),但获取和折叠这些行并不是微不足道的。
到目前为止,我见过的最接近的解决方案是Folding with Regular Expression Vim Tips Wiki 页面上描述的折叠表达式。这仅适用于当前缓冲区,但可以快速设置并启用(一级或二级)上下文折叠。