如何从Vim的每一行删除最后3个单词?

imb*_*hie 1 vim cpu-word

如何使用单个命令或使用录音从Vim中的每一行删除最后3个单词?

例如,之前,

10 3 -5 6 1 0 5 
5 9 -1 0 56 8 9
-6 0 45 8 6 3 0
Run Code Online (Sandbox Code Playgroud)

后,

10 3 -5 6  
5 9 -1 0 
-6 0 45 8 
Run Code Online (Sandbox Code Playgroud)

Mic*_*kis 6

你最安全的赌注是:

:%norm $3gElD
Run Code Online (Sandbox Code Playgroud)

说明:

对于文件(%)中的所有行,在正常模式(norm)中,移动到行的末尾($),然后向后移动3个WORD(3gE),向右移动一个字符(l),并删除光标下的字符直到结束这条线.

原因gE是告诉VIM按照它定义为WORD的方式移动:一系列非空白字符,用空格分隔(包括短划线).

编辑:如果一行中有尾随空格,上述内容将失败.你可以先用文件删除文件中的所有尾随空格:%s/\s*$//g