7

最後の単語を除く行のすべての単語を削除するためのvimの検索/置換を思い付くのに問題があります。つまり、少しのSQLで、一連のコードからすべてのエイリアスのリストを生成すると便利です

select 
column_a alias_a,
column_b alias_b,
column_c alias_c

from 
...

リストを生成したいだけです

alias_a, alias_b, alias_c

だから私はカンマと行末がすぐに続かないすべての単語を削除したいと思います

4

4 に答える 4

10

オプション 1 :

%s/\v.*\s(\S+)$/\1/

オプション 2 : マクロを使用する

qa$T d0jq

x は、x@aこのマクロを適用する行数です。

オプション 3

外部コマンドに切り替えます:

:%!awk '$0=$NF'

オプション 4 : Align または同様のプラグインがある場合は、それらの行を右に揃えてから、c-vブロックの選択と削除を使用して、最後の列を残します。

于 2013-04-05T20:38:36.473 に答える
3

私はするだろう:

:%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 つのカンマ区切りの行に入れることができます。

于 2013-04-05T20:22:14.850 に答える