VI


UNIX系のOSを使っていて常に付きまとうのがviエディタでしょう。 Windows を使っていた人にとってはその挙動一つ一つがびっくりです。 意味のないコマンド、ただタイプするだけでは入力できないっていうもどかしさ・・・。しかし、一旦覚えてしまうと、その意味のないコマンドはホームポジションから手をはなす必要がないという便利さから来ているのだと気づきます。単純であるが高度なことも楽々こなし、なれればそれ以外のエディタは使えない体になっています。ここでは私が良く使うコマンドを示します。簡単なのは他を見てくさい。



コマンド機能説明
:m,n s/ABC/DEF/g 置換 m行目からn行目までを "ABC" という文字列を "DEF"にします。一行の中にABCという文字が何回出てきても置換します。複数回出てきた時にはじめのABCだけ置換するという場合はさいごのgというオプションを外します。ABCには正規表現を使うことができますが、拡張したり更に細かい設定をするにはperlと下の!を組み合わせると良いでしょう。
:m,n !sort ソート m行目からn行目までを ソートします。!に続くコマンドはシェルのコマンドが入ります。ですからsortに続けてオプションを書けば更に細かい設定が可能です。いろいろなコマンドを試してみれば面白いです。perlのワンライナーと組み合わせれば最強です。
. 繰返し処理 前回のコマンドを繰り返します。複数行に同じ処理を行なうには一番単純な方法でしょう。
wとb word単位のカーソル移動 カーソルの右移動は"l"、左移動は"h"で可能ですが、スピードが遅いですね。wbを使えばword単位でカーソルが移動してくれるのでスピードが速いです。
^z fg viのサスペンド これはviに限ったものではないのですが、viで ^z(cntl + "z")とすれば一旦コマンドプロンプトに戻れます。またviに復帰したい時は fg ですね。
J 行のマージ 下の行とマージします。マージするとスペースがいっこ入ります。ちなみにcapsキーが入っているのを知らずj(下移動)してマージ連チャンモードになることもよくあります(爆)。そんな時は :e! しかないですね(泣)