前回 に引き続きKeyRemap4MacBookについて、初期状態で簡単に導入できる Vim設定について。 次回以降でこれ以外に自分で設定しているものなども紹介したいのですが、 差し当たりまず、KeyRemap4MacBookに最初から入っているVimライクな動きを Vim以外で再現する設定についてまとめておきます。
Vi Mode/Complete Vi Mode/Simultaneous Vi Mode
まずはこちらを御覧ください。
カーソルキーを身近に!
以上です… だけでは寂しいのでもう少し。
Vi Mode
Vim以外でVimする: Windows編という記事の最初の
方に書いた
指定のモディファイヤとh
,j
,k
,l
を押す事によってVim的な上下左右運動をする様な事が出来る設定です。
ただ、⌘-⌃-でのキーバインドがなかったりするのでその辺りを自分で設定して使ってます。 (多分次回紹介)
Simultaneous Vi Mode
これは上のVi Modeをモディファイヤの代わりにs
とd
キーを押している間
h
,j
,k
,l
移動を可能にするモードです。
特徴的な使い方もありますが基本的な使い方としてはVi Modeと一緒です。
Complete Vi Mode
この機能でノーマルモードに関する事は大体出来ます。
Complete Vi Mode
Excape to turn on Vi Mode
へチェックをすれば
Vim以外のアプリでEsc
でVi Mode
へ入りi
で通常モードに
変更するようになります。
このVi Mode時には
という表示が出るので分かりやすいとのこと。
これで一通りの移動系(h
,j
,k
,l
,Ctrl-f
,Ctrl-b
,b
,e
,w
,0
,$
)や
消去(x
)、検索(/
,n
)等が出来るようになります。
Vi Mode
への入り方は両Cmd同時押し、等いくつか用意されています。
ただし、このモードではVim(MacVim)
以外全てのアプリ上で有効になるので、
ターミナルでの動きがおかしくなるのでもしそれでも使いたい場合は、
/Applications/KeyRemap4MacBook.app/Contents/Resources/include/checkbox/complete_vi_mode.xml
の中身のEscape to turn on Vi Mode
の
<not>VI</not>
となってる箇所を
<not>VI,TERMINAL</not>
の様に変更するとターミナルやiTerm2上でも無効になります。
Ubiquitous Vi Mode
上のスライドなどでは紹介されていませんが、
Ubiquitousはさらにノーマルモードが拡張されたVi Mode
です。
Ubiquitous Vi Mode
Recommended binding options to enter Normal Mode
Esc toggles Normal Mode
とEsc doesn not exit Normal Mode
へチェックをすればEsc
でノーマルモードに入り移動系やらコピーカットペースト系
やら使う事が出来ます。
出来る事の一覧はKeyRemap4MacBookのUbiquitous Vi Modeの設定にあるDocumentation
かあらかじめ用意されている設定項目一覧から見てみて下さい。
こちらのモードは、ターミナル、iTerm2、Vim(MacVim)、Emacs、 Firefox、それからパスワード入力のポップアップ場面で無効になるようになっています。