Vimで正規表現にマッチした文字列を置換先でも使う
Vim で置換する際に、正規表現でマッチした文字列をそのまま置換先でも使いたいという場面にちょくちょく遭遇するのでやり方を調べた。後方参照と呼ぶらしい。 (後方参照というワードを知らなかったので調べるのにちょっと苦労した)
やり方 (ヘルプ) はこちら。
12.2 "Last, First" を "First Last" に変更する
上のリンク先に全部書いてあるが、エスケープ付きの括弧 \( \)
で囲まれた部分は \1
, \2
, ..., \9
で参照できる、というもの。
たとえば Markdown を書いているとして、先頭が数字からはじまる行を h2 としたい場合はこうすればできる。
:%s/^\([0-9]\)/## \1/g
before
1 はじめに あいうえお 2 おわりに かきくけこ
after
## 1 はじめに あいうえお ## 2 おわりに かきくけこ