如何选择VIM中不包含单词"hello"的所有行?我需要它猛拉然后保存到文件中.我该怎么做?我正在寻找类似的东西:
:v /!(你好)>文件
bfabry.. 11
:g!/hello/ yank A
这些行现在存储在寄存器a中,粘贴它们做"ap
编辑:可以缩写为
:g!/hello/y A
对于那些对vim意味着什么感兴趣的人:
:g =全球搜索
!=对布尔测试的否定
/ hello/=正则表达式匹配"hello"
y =在每个匹配的行上执行的命令,在这种情况下"yank"
A =对"yank"命令的寄存器参数.在这种情况下,寄存器'a'但是以大写形式的形式附加到寄存器而不是替换.
:g!/hello/ yank A
这些行现在存储在寄存器a中,粘贴它们做"ap
编辑:可以缩写为
:g!/hello/y A
对于那些对vim意味着什么感兴趣的人:
:g =全球搜索
!=对布尔测试的否定
/ hello/=正则表达式匹配"hello"
y =在每个匹配的行上执行的命令,在这种情况下"yank"
A =对"yank"命令的寄存器参数.在这种情况下,寄存器'a'但是以大写形式的形式附加到寄存器而不是替换.
只要您拥有grep
系统,就可以使用以下命令:
:!grep -v hello % > file
我通常会做一些变化
:g/hello/d
即删除包含"hello"的所有内容,然后选择,抽取或需要完成的任何操作,最后还原回击你.我发现这对构建命令行管道没有太大的精神负担.
到目前为止我没有看到的替代方案是redirecton.
所以对于你的情况,这将是
:redir > file :g!/hello/ :redir END
也可以看看
:help redir :help verbosefile