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

vim删除包含X个或更多单词的所有行,vim,Vim,我正在寻找一个vim命令,该命令将匹配并删除包含4个或更多单词的所有行,其中单词由分隔符分隔,在本例中为空白字符 以前 一二三四五 一二三四 一二三 之后 一二三 救命啊 awk 'NF < 4' foo.txt > output.txt 或使用:global命令和:delete(请参见:h:g&:h:d)的纯Vim: :%!awk 'NF < 4' :g/\s.*\s.*\s/d_ :%s/\v(\w+ \w+ \w+)\zs.*//g \v ............

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

以前

一二三四五

一二三四

一二三

之后

一二三

救命啊

awk 'NF < 4' foo.txt > output.txt
或使用
:global
命令和
:delete
(请参见
:h:g
&
:h:d
)的纯Vim:

:%!awk 'NF < 4'
:g/\s.*\s.*\s/d_
:%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