後で繰り返しなければならない行がある長いテキストがあります。Vimの後の行で最初に一致するパターンを置き換えます。
私はテキストで、このようなタグを置く:
{F1}text need to be repeated later{/F1}
ので、私は後のセクションに複数の{F1}{/F1}
を追加し、それらの間の最初の行の内容を置くことができます。
問題が{F2}{/F2}
などのように、このようなタグがたくさんあるだろうということです...そしてこのパターンがあまりにもそれらのすべてに一致します。
{\(.*\)}.*{\/\1}
だから、私は別のすべての最初の発生を検索しますタグを置き換えて後の行に置き換えます。最初の行を変更してもう一度代用すると、すべての行が更新されます。おそらく自動的にautocmd BufWrite
で更新されます。
どうすればいいですか?最初の行に{}{/}
というタグを付ける考えは必ずしも必要ではありません。タグがたくさんあるので、私は個々の代替コマンドを使ってそれを1つずつ実行したくありません。
私はこれを試みた:
:g/{\(.*\)}\(.*\){\/\1}/s/{\1}.*{\/\1}/{\1}\2{\/\1}/
それは言う:
E65 Illegal back reference.
正確に何をしたいのかわかりやすくするために、例文(前後)を投稿することはできますか? – Benoit
私は間違っているかもしれませんが、私は、マッチ部分にキャプチャせずにs ///の置換部分で逆参照を使用することによってエラーが発生したと思います。 – johnny