查看服务器日志的时候,常常需要把带某些关键字的行过滤出来,集中到一个地方查看。在Vim中,我们可以使用自定义命令来达到这个目的。
下面我们要创建:Filter
命令,用来过滤关键字并把结果放到一个新开的临时窗口中:
详细解释:
command!
, 定义一个命令-nargs=?
, 这个命令接受0或1个参数Filter
, 命令的名字,后面跟的是命令的内容let @a=''
, 清空寄存器aexecute '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 :g
Power of g
Filter buffer on a search result