5

以下のような行があります。

aaa
bbb
ccc
ddd

私はそれらを次のように変更したい:

aaa=$aaa
bbb=$bbb
ccc=$ccc
ddd=$ddd

そのため、次のコマンドを使用してvimで実行しましたが、エラーが発生しました

:s/\(\^*\)/\1=\$\1/

\1here を 2 回使用できないことに気付きました。

4

2 に答える 2

4

後方参照\1は何度でも使用できますが、別の問題があります。正規表現は次のようになります。

:%s/^\(.*\)/\1=\$\1/

説明:%は vim にすべての行を置き換えるように指示します。^行頭のマークは正規表現の最初の文字である必要があり、エスケープしないでください。.*とは「何文字でも何回でも」という意味です。ただし、元の式\(\^*\)では、リテラル文字の任意の数の繰り返し^(なしを含む) が検索されます。

于 2012-10-19T07:11:00.013 に答える
4

^行の内容全体を照合する場合は、アンカーも を介したキャプチャも必要ありません\(...\)。置換では、\0またはより短いを使用できます&。(また、$そこをエスケープする必要はありません。)

:%s/.*/&=$&
于 2012-10-19T07:42:11.817 に答える