vim删除包含X或更多单词的所有行

时间:2018-06-08 18:25:47

标签: vim

我正在寻找一个vim命令,它将匹配并删除包含4个或更多单词的所有行,其中单词由分隔符分隔,在本例中为空白字符。

  一二三四五。

     

一二三四

     

一二三

  

一二三

2 个答案:

答案 0 :(得分:4)

要求救援!

awk 'NF < 4' foo.txt > output.txt

使用Vim的过滤器:!,命令(参见:h :range!):

:%!awk 'NF < 4'

带有:global命令的纯Vim和:delete(请参阅:h :g&amp; :h :d):

:g/\s.*\s.*\s/d_

答案 1 :(得分:1)

:%s/\v(\w+ \w+ \w+)\zs.*//g

\v ................. very magic (avoids backslashing everything)
(\w+ \w+ \w+) ...... a group of three words
\zs.* .............. starts considering what that comes after