如何删除vim中每行的最后一个单词?

imb*_*hie 5 vim

请告诉我,如何使用vim命令从每行删除最后一个单词?之前:

abcdef 123
xyz 1256
qwert 2
asdf 159
Run Code Online (Sandbox Code Playgroud)

之后:

abcdef
xyz
qwert
asdf
Run Code Online (Sandbox Code Playgroud)

同样请告诉我如何使用vim命令从每行中删除第二个单词?

Sar*_*h G 10

使用以下正则表达式(在ex模式下):

%s/\s*\w\+\s*$//
Run Code Online (Sandbox Code Playgroud)

这告诉它找到可选的空格,后跟一个或多个单词字符,后跟可选的空格,后跟行尾 - 然后替换为空.


pan*_*ear 8

这个问题已经得到了解答,但这是我最终可能会做的事情:

录制宏:
qq录制到寄存器"q"
$以转到行尾
daw以删除单词
q以停止录制

然后选择其余行:
j沿着一行
vG选择文件末尾

并应用宏:
:norm @q


一些类似的选择:

:%norm $daw

qq$dawjq(注意添加j)然后999@q多次重放宏.(宏执行在第一个"错误"处停止 - 在这种情况下,您可能会触及文件的底部,j不起作用,宏将停止.)