vimでちょっと複雑な置換
あるパターンに従って様々な単語を置換して入力していきたい場合、レジスタを使うことでうまく処理を軽減できる。例えば以下のようにするとhogeをfugaに置換できる。
:let @i = "fuga" :s/hoge/\=@i/
\=の後に書いたものはvimscriptとして実行される。また、コマンドモード中でレジスタは@iのように書ける。
これだけだと置換する意味は特にないが、キャメルケースの単語をスネークケースに置換して入力したいとかだと役に立つ。
ex. getHogeという単語を大量にコピーしておいて単語を変えつつ順に入力していく場合
:s/getHoge/\=substitute(@i, "[A-Z][a-z]\\+", "-\l\0", "g")/
上記のコマンドを実行すればレジスタiに登録したキャメルケースの単語をスネークケースにした上でgetHogeと置き換えることができる。

- 作者: DrewNeil,新丈径
- 出版社/メーカー: KADOKAWA / アスキー・メディアワークス
- 発売日: 2014/01/28
- メディア: Kindle版
- この商品を含むブログ (3件) を見る