変更する必要があるテキストがあるとします。
<tag name="aaaa" value="${bbbb}"/>
<tag name="cccc" value="${dddd}"/>
私はそれをフォームに入れる必要があります
<tag name="bbbb" value="${bbbb}"/>
<tag name="dddd" value="${dddd}"/>
つまり、 の内側の部分を使用して、 の内側${...}
をvalue
置き換えname
ます。
変更する必要があるテキストがあるとします。
<tag name="aaaa" value="${bbbb}"/>
<tag name="cccc" value="${dddd}"/>
私はそれをフォームに入れる必要があります
<tag name="bbbb" value="${bbbb}"/>
<tag name="dddd" value="${dddd}"/>
つまり、 の内側の部分を使用して、 の内側${...}
をvalue
置き換えname
ます。
置換を簡単にするために、キャプチャ グループと\zs
/を使用できます。\ze
:%s/name="\zs[^"]*\ze" value="\${\([^}]*\)}/\1/
\zs
\ze
置き換えられる試合の開始と終了をマークします[^"]*
一致しない 0 個以上の文字に一致"
\(...\)
キャプチャーグループです。\1
、\2
、 ...として置換で表されます。詳細については、次を参照してください。
:h /\zs
:h /\(
:h /[
:h :s
マクロを作成するには、 を使用しますqa
q
。次に、 を使用@a
してマクロを実行します。
qa
にマクロをバインドすると、a
入力を開始してマクロを記録できます。次にもう一度押すq
と、マクロの記録が停止します。
あなたの状況では、コマンドモードに入って次のように入力しました。
qaf{lyf}2F"PxF"l4xq
その後@a
、別の行の先頭から再度実行します。
jF<
最後の q の前に追加して、カーソルを自動的に次の行に移動することもできます。次に、10@a を実行して、マクロ全体をチェーンできます。連続する 10 行の編集を行います。