[目次] [前章] [次章]

9.Viコマンドの定義

長いコマンドシーケンスにエイリアスを定義する


コマンドにエイリアス(別名)を定義するには、mapコマンドを使います。
使い方は、:map (別名) (実際のコマンド)です。
割り当てには注意が必要で、既にViに割り当てられているキーに対してmapコマンドを使ってしまうと、
元の使い方が出来なくなってしまいます。(例えばhに割り当てると、左へ移動できなくなる。)
ので、g,k,q,v,Vなどの使われていないキーに割り当てましょう。

例えば、行の終わりにaを追加し、改行して次の行へカーソルを持っていくには、(あんまり意味はないけど。)
:map v Aa(Ctrl+V)M(Ctrl+V)[(Enter)
で出来ます。かなり入り組んでいますね。
一つづつ説明して行きます。

まず:を押すと、画面の下の方に:が出てきて、そこから先を入力できるようになります。
上の形式に従って、mapをタイプします。
次にvというのは、別名定義です。vを押すだけで、後のごちゃごちゃした長いコマンドを実行することが出来るようにします。
次に、行の終わりに追加するわけですから、Aですね。
次に、テキストaを挿入するわけですから、aですね。

次の(Ctrl+V)ってのは、Controlを押しながらVっていう意味なんですが、これを押すと、
^ってのが出てくるはずです。
実は、改行を定義する時にはEnterを押すのではなく、^Mというものを代わりに使わなくてはならないのです。
だから、次のMってのは、^とセットで改行を意味しています。
ここで重要なのは、Ctrl+VしながらMを押すことです。そうすることで、^Mが入力されます。
で、次のも同じで、^[でEscを意味するので、これで入力モードを終わり、コマンドモードに戻ることを意味しています。
最後にEnterを押して完了です。

さて、ここまできたら実際にエイリアスが効いてるか試してみましょう。
新しいコマンドを定義したわけですから、当然コマンドモードにて行います。
とりあえず、vを押してみて下さい。
どうですか? ちゃんとaと改行は挿入されましたか?
うまく行けば、あとの要領は同じなので、がんがん独自コマンドを作って編集作業を楽にしましょう。
[目次] [前章] [次章]