最後の単語を除く行のすべての単語を削除するためのvimの検索/置換を思い付くのに問題があります。つまり、少しのSQLで、一連のコードからすべてのエイリアスのリストを生成すると便利です
select
column_a alias_a,
column_b alias_b,
column_c alias_c
from
...
リストを生成したいだけです
alias_a, alias_b, alias_c
だから私はカンマと行末がすぐに続かないすべての単語を削除したいと思います
オプション 1 :
%s/\v.*\s(\S+)$/\1/
オプション 2 : マクロを使用する
qa$T d0jq
x は、x@aこのマクロを適用する行数です。
オプション 3
外部コマンドに切り替えます:
:%!awk '$0=$NF'
オプション 4 : Align または同様のプラグインがある場合は、それらの行を右に揃えてから、c-vブロックの選択と削除を使用して、最後の列を残します。
私はするだろう:
:%s/\v(.*\s)(\w\+)/\2/
つまり、最後のスペースまですべてをキャプチャ グループ 1 に取り込み、その後はすべてキャプチャ グループ 2 に取り込み、それをキャプチャ グループ 2 だけに置き換えます。
これを置き換えます:
select
column_a blah blah blah alias_a,
column_b foo foo foo alias_b,
column_c bar bar bar alias_c
from
に:
select
alias_a,
alias_b,
alias_c
from
次に、数回パンチShift-Jして、エイリアスを 1 つのカンマ区切りの行に入れることができます。