vim(vi)を勉強するメリット(マイナー編)

メジャーなメリットについては既に色んな人が書いているので、マイナーなのを1つ。

exモードを弄るようになると、sedが使えるようになる。exモードのテキスト編集系のコマンドとsedのコマンドは結構似ているし、コマンドの書き方自体も似ている。

反対に、sedを使うようになると、viのexモードに応用できるようになる。

最近ではsedはマイナーなツールかもしれないけど、AWKよりは使われているのではないだろうか? AWKは……やることにもよるけど、多分Perlを使う人の方が多いのではないかと思う。

問題は正規表現が異なること。元々sedとviでサポートしているメタキャラクタが微妙に異なっている上に、現在比較的よく使われているだろうGNU sedvimでは色々と拡張されていて、それがまた微妙に違ったり片方にしか存在しない記法だったりして余計に苦労する*1

付け加えると、exモードを弄るようになると、edを使う時に恐れを抱かなくて済む程度の度胸が身につく。コマンドも何となく似ているし。もっとも実際にedを使う時にはmanが欲しいと思う。

ちなみに、こんなエントリを書いている私は、特にvi派というわけではない。vimNTEmacsxyzzy、otbedit、秀丸エディタ+秀macs、K2Editorと各種取り揃えております*2

*1:基本的なメタキャラクタの差異を知りたいなら『sed & awk デスクトップリファレンス』が便利。awk、ed、egrep、grep、vi/exがそれぞれサポートするメタキャラクタの違いが一覧表になっている。

*2:どれも使いこなせていない。