我无法想出一个vim find/replace来删除除了最后一行之外的所有单词,即在一点SQL中,从一堆代码中生成所有别名的列表会很好
select
column_a alias_a,
column_b alias_b,
column_c alias_c
from
...
Run Code Online (Sandbox Code Playgroud)
我想生成列表
alias_a, alias_b, alias_c
Run Code Online (Sandbox Code Playgroud)
所以我想我想删除所有没有紧跟逗号和行结尾的单词
选项1:
%s/\v.*\s(\S+)$/\1/
Run Code Online (Sandbox Code Playgroud)
选项2:使用宏
qa$T d0jq
Run Code Online (Sandbox Code Playgroud)
那么x@ax是你想要应用这个宏的行数
选项3
转向外部命令:
:%!awk '$0=$NF'
Run Code Online (Sandbox Code Playgroud)
选项4:如果您有Align或类似的插件,请将这些行对齐,然后使用c-v块选择并删除,只需离开最后一列.