以下のような行があります。
aaa
bbb
ccc
ddd
私はそれらを次のように変更したい:
aaa=$aaa
bbb=$bbb
ccc=$ccc
ddd=$ddd
そのため、次のコマンドを使用してvimで実行しましたが、エラーが発生しました
:s/\(\^*\)/\1=\$\1/
\1
here を 2 回使用できないことに気付きました。
以下のような行があります。
aaa
bbb
ccc
ddd
私はそれらを次のように変更したい:
aaa=$aaa
bbb=$bbb
ccc=$ccc
ddd=$ddd
そのため、次のコマンドを使用してvimで実行しましたが、エラーが発生しました
:s/\(\^*\)/\1=\$\1/
\1
here を 2 回使用できないことに気付きました。
後方参照\1
は何度でも使用できますが、別の問題があります。正規表現は次のようになります。
:%s/^\(.*\)/\1=\$\1/
説明:%
は vim にすべての行を置き換えるように指示します。^
行頭のマークは正規表現の最初の文字である必要があり、エスケープしないでください。.*
とは「何文字でも何回でも」という意味です。ただし、元の式\(\^*\)
では、リテラル文字の任意の数の繰り返し^
(なしを含む) が検索されます。
^
行の内容全体を照合する場合は、アンカーも を介したキャプチャも必要ありません\(...\)
。置換では、\0
またはより短いを使用できます&
。(また、$
そこをエスケープする必要はありません。)
:%s/.*/&=$&