Vimの正規表現が気にくわない
今まで働いてきた殆どの現場でUNIX環境にVimがインストールされていない*1事が多く、Viの基本的なコマンドしか使っていなかったのだが、ここ1〜2年でVimを標準でインストールしてある現場が増えてきた。なので、今年に入ってからVimユーザーになったのだけど、Vimの正規表現がPerlやRubyの正規表現に慣れていると非常に腹立たしいと感じた。例えば量指定子。
* 0以上
\+ 1以上
\= 0か1
\? 0か1
\{n,m}
\{n}
どうせ「\」付けさせるんだったら「*」にも付けるようにして欲しかった。こういう紛らわしい例外があるとイライラするので、職場ではperldoから正規表現を使っている。
:perldo s/hoge/hogehoge/g
こんな感じ。仕事はほぼRubyを使っているのだけど、Vimで正規表現を使うとなるとPerlライクの方が使いやすい。ついでに我がさくらインターネットの環境にもperldoを使えるようにしようと思ったのだけど、何故かエラーが出てしまい上手くいかなかった。しょうがないのでさくらではeregex.vimをpluginに入れた。
:%S/hoge/hogehoge/g
のようにsをSにするとPerlやRubyのような正規表現を指定できる。これは職場にも入れた方がいいかなあ。どっちかに統一した方がスッキリするし。うーむ、悩ましい。