#概要
aiueoWWWpiyo
という文字列は:%s/\v((.)\2+)/!\1!
を実行するとaiueo!WWW!piyo
になる。
#詳細
文字 | 意味 |
---|---|
\v | very magicを利用 |
() | グループ化 |
\1 | 1個目のグループを参照 |
+ | 1回以上の繰り返し |
\v
はvimのvery magicという機能を使うという意味。メタ文字の入力がしやすくなる。
()
はグループ化で、マッチしたものを\1
のように参照できる。この番号は何個目の括弧であるかを記述する。
vim
aiiiueo
:%s/\v(a)(iii)(ue)/\1\3\2
aueiiio
()
は()
の中に入れられる。外側が1でそこから数える。
vim
hogepiyo
:%s/\v(ho(ge)(pi(yo)))/\4\3\2\1
yopiyogehogepiyo
\1
は検索の段階で使用できる。
vim
thatthatthat
:%s/\v(that)\1/this
thisthat
連続した文字は(.)\1+
でマッチする。
vim
apple book ddddc
:%s/\v(.)\1+/m/g
amle bmk mc