2013/03/14

カーソルキーさん@つかわない インサートモード編

この記事はVim Advent Calendar 2012  104日目の記事になります。
103日目は@ujihisaさんのunite-buildでした。


Vimッ!  使わずにはいられないッ!

カーソルキーでエディット?

貧弱貧弱ゥ!!



はい、すいません。

というわけで
以前、書いた記事にも似たようなことをチラッと書きましたが、改めてきちんと書きなおしてみます。

Vimmerであればノーマルモードにおいて、息をするよりも簡単にhjkl移動をすることだと思います

しかし、インサートモードではどうでしょう?
案外カーソルキーに手を伸ばしがちですね。
私もVimを使い始めたばかりの頃はそうでした。

そもそも、インサートモードにおいてカーソルキーを連打ってしまうくらいの移動ならば
<ESC>してノーマルモードで移動すべきだと思います。
Vimは音ゲーでは無いので連打なんてするべきではないのです。

標準では以下のように与えられています。

下の行へ
<C-G><C-J>
<C-G>j
上の行へ
<C-G><C-K>
<C-G>k

これでは物足りませんね(゜.゜)

そこで、この上記に加えるといいであろう設定を列挙します。

<C-A> - 行頭
<C-E> - 行末
<C-F> -  右
<C-B> -  左

noremap! <C-A> <Home>

noremap! <C-E> <End>

noremap! <C-F> <Right>

noremap! <C-B> <Left>

noremap! <C-D> <Del>

emacsライクに設定しています
私がこの設定にしている理由はMacを常用しているからです。

Macだと結構な割合でemacs移動バインドがテキストボックス内で使えるので案外役に立つのではないでしょうか。
あと、emacsも最低限の動作は覚えておきませんと。

emacsっぽいとかイヤっていう人は
私は使っていませんが,こちらの設定をおすすめします

<C-K> - 上
<C-J> - 下
<C-H> - 右
<C-L> - 左

これならコントロールキーを押すだけなので(マップ程度で考える必要はないでしょうが)学習コストは無に等しいですね


さて、普通のVimmerならカーソルキーを設定したら
ReturnとかBackSpaceも遠いんじゃないかと思い始めるものです

というか<ESC>も遠いですよね?

<ESC>キーには標準で<C-[>が割り振られています。
これを使うといいはずです。

余談ですが、入力中のコマンド表示を設定するshowcmdオプションを有効にしておくと
私の環境では<ESC>を押すと右下には^[が表示されるのでもしかすると<ESC>が^[のマップなのかなあ、なんて思ったりしてます。
言っておいてアレですが、私は未だに<ESC>から移行できていません・・・(○ω○`)

Returnキーもまた標準で<C-M><C-J>に割り当てられています。
Emacsは<C-M>が標準のようだったので<C-M>を使うようにしてます。

こんな感じで挿入モードもどんどんカスタマイズして行きましょう

3 件のコメント:

  1. BackSpaceは タブはですね。
    この辺りは制御コードと同様のようです。
    http://ash.jp/code/ctrltbl.htm

    返信削除
    返信
    1. <>が消えた・・・ BS:C-H TAB:C-I です。

      削除
    2. ほむほむ、制御コードで決まっていたのですね
      エスケープも^[となっているようです

      ありがとうございます。

      削除