请告诉我,如何使用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)
这告诉它找到可选的空格,后跟一个或多个单词字符,后跟可选的空格,后跟行尾 - 然后替换为空.
这个问题已经得到了解答,但这是我最终可能会做的事情:
录制宏:
qq将宏录制到寄存器"q"
$以转到行尾
daw以删除单词
q以停止录制
然后选择其余行:
j沿着一行
vG选择文件末尾
并应用宏:
:norm @q
一些类似的选择:
:%norm $daw
qq$dawjq(注意添加j)然后999@q多次重放宏.(宏执行在第一个"错误"处停止 - 在这种情况下,您可能会触及文件的底部,j不起作用,宏将停止.)