新参弱Vimmerなのでお手柔らかに…
タイトルにあるように、Macユーザー向けです。
hjklじゃなくて、ctrl+hjkl です。悪しからず。
vim使い始めるとhjklでのカーソル移動に慣れてしまって、カーソルキーまで移動するのが億劫に…
ブラウザはChromeなのでVimiumはもちろん導入しました。
で、当然ながら他の環境でもhjklしたくなるじゃないですか?
そこで、登場するのがKeyRemap4MacBookです。
名前にMacBookって入ってますが他のMacでもいけます。
名前の通りKeyをremapするものです。
そもそもKeyRemap4MacBookには
normal mode,visual modeとかが簡単に利用できる設定も存在します。
僕の場合は、normal modeに入ったりしないでctrl+hjklでのカーソル移動だけ使えりゃいい && MacVim使ってる時は無効化したいので自分で書きました。如何にも新参弱Vimmerっぽいですね!!
<?xml version="1.0"?>
<root>
<appdef>
<appname>MACVIM</appname>
<equal>org.vim.MacVim</equal>
</appdef>
<item>
<name>Control_L + hjkl to Left/Down/Up/Right except MacVim</name>
<identifier>private.vim_mode_except_vim</identifier>
<not>MACVIM</not>
<autogen>__KeyToKey__ KeyCode::H, ModifierFlag::CONTROL_L, KeyCode::CURSOR_LEFT</autogen>
<autogen>__KeyToKey__ KeyCode::J, ModifierFlag::CONTROL_L, KeyCode::CURSOR_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::K, ModifierFlag::CONTROL_L, KeyCode::CURSOR_UP</autogen>
<autogen>__KeyToKey__ KeyCode::L, ModifierFlag::CONTROL_L, KeyCode::CURSOR_RIGHT</autogen>
</item>
</root>
自分で設定を追加する手順は公式にある通りです。
備忘録的にちょっと解説書くと
下記部分が設定内で指定したいアプリケーションの割り当て。
<appdef>
<appname>MACVIM</appname>
<equal>org.vim.MacVim</equal>
</appdef>
appname
は自分のわかりやすいように決めて大丈夫。あとで使う。
equal
はKeyRemap4MacBook同梱アプリのEventViewerで確認します。
- KeyRemap4MacBook上部の Misc&Uninstallタブ を選択。
- Launch EventViewerで起動。
- 上部appタブを選択してからアプリを切り替えると、切り替えたアプリの履歴が出るのでApplication Bundle Identifier を確認。
といった感じです。
で、下記で具体的なremapの指定。
<item>
<name>Control_L + hjkl to Left/Down/Up/Right except MacVim</name>
<identifier>private.vim_mode_except_vim</identifier>
<not>MACVIM</not>
<autogen>__KeyToKey__ KeyCode::H, ModifierFlag::CONTROL_L, KeyCode::CURSOR_LEFT</autogen>
<autogen>__KeyToKey__ KeyCode::J, ModifierFlag::CONTROL_L, KeyCode::CURSOR_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::K, ModifierFlag::CONTROL_L, KeyCode::CURSOR_UP</autogen>
<autogen>__KeyToKey__ KeyCode::L, ModifierFlag::CONTROL_L, KeyCode::CURSOR_RIGHT</autogen>
</item>
name
はremapの名前。そのまんまですね。この名前が設定画面に表示されます。
identifier
は…忘れたw
not
はこのremapを除外するアプリを指定します。ここでさっきappdef
で割り当てたname
を書いてやります。
最後にautogen
に肝心のremapを書きます。ここの書き方はググるといっぱい出てくるので割愛。
このファイルを読み込んでやると、設定一覧に出てくるのでチェックを入れるだけです!
これでカーソルキーまで手を伸ばさなくても!カーソルが!移動!で!き!r!u!
最後に一言
exceptって単語使い方あってるのかな…間違ってたら指摘して下さい…