原文是Redirect g search output。
查看服务器日志的时候,常常需要把带某些关键字的行过滤出来,集中到一个地方查看。在Vim中,我们可以使用自定义命令来达到这个目的。
下面我们要创建:Filter命令,用来过滤关键字并把结果放到一个新开的临时窗口中:
详细解释:
command!, 定义一个命令 -nargs=?, 这个命令接受0或1个参数 Filter, 命令的名字,后面跟的是命令的内容 let @a='', 清空寄存器a execute 'g/<pattern>/y A', 执行'g/<pattern>/y A' (搜索与<pattern>匹配的行,将其添加到寄存A) new, 创建一个新窗口 setlocal bt=nofile, 把当前窗口设为scratch模式 put! a, 把寄存器a的内容粘贴到新窗口 记得把:Filter的定义加入到你的**.vimrc**中。
简单的例子:
过滤将带有404错误的行。
还可以使用正则表达式:
过滤带有red或者blue的行。
如果:Filter不带任何参数,会重复上回搜索的结果。
其他:
:help :gPower of gFilter buffer on a search result