Macのキーバインド設定ソフトである Karabiner の中にVim EmulationというMacのどこでもVimっぽい動きを実装した 設定が入っていますが、 この設定の中でNormalモードに入る際のキーを簡単にカスタマイズ出来る様に変更しました。
- Vim Emulation on Karabiner
- Normalモードに入るキーを設定する
- 2つ同時押しでNormalモード、Insertモードをトグルする
- Karabinerでキー設定を簡単に切り替えられる様にする方法
Vim Emulation on Karabiner
Karabinerの中にはいくつかVimっぽい動きを実現する設定が入っていますが、 一番実際のVimに近い動き(モード変更など)を実現するのがVim Emulationの設定です。
通常はEscや⌃-]などで Normalモードに入りますが、 その他J-Kの同時押しでNormalモードとInsertモードを 行き来したりする設定も入っています。
今まで要望に答えたりする形でいくつか設定を加えてきましたが、 今回自由にキーを簡単に設定できるようにしました。
Normalモードに入るキーを設定する
新たにNormalモードに入るキーを設定するには以下の項目を自分のprivate.xmlに追加します。
1 2 3 4 5 6 7 8 9 |
|
この設定ならRETURNを押すとESCの代わりにNormalモードに。
そして、Karabinerの設定項目からVim Emulationの設定を探して ChangeKey13を有効にします。
2つ同時押しでNormalモード、Insertモードをトグルする
ChangeKey7, 8, 9でそれぞれJ-K、Q-W、S-D の同時押しでNormalモードとInsertモードを切り替える設定になっていますが、 この様な設定を他のキーで行うには、
1 2 3 4 5 6 7 8 9 |
|
の様な設定をprivate.xmlに加えます。 これだとO-Pで切り替えられるように。
そして、Karabinerの設定項目から ChangeKey14を有効にします。
Karabinerでキー設定を簡単に切り替えられる様にする方法
メモを兼ねて上の様な設定をKarabinerで作る方法について。
Karabinerでは使える変数設定をKarabiner.app/Contents/Resources/replacementdef.xmlの中で最初に定義しています。
ソースだと Karabiner/src/core/server/Resources/replacementdef.xml
ここで上に書いた様な<replacementdef>
の初期値が設定してあって
ここで設定してないと後から追加とかは出来ません。
Vim Emulationに関しては
<include path="include/checkbox/vim_emu/vim_emu_replacementdef.xml" />
の様にファイルを読み込んでいますが、このファルの中に
上のVIM_EMU_CUSTOMIZE_KEY
等の初期設定が入っています。
Karabiner/src/core/server/Resources/include/checkbox/vim_emu/vim_emu_replacementdef.xml
この様な設定を入れた後、読み込まれる設定の中で、
1 2 3 4 5 6 7 8 9 |
|
の様な感じで使いたい変数を使って上げればOK。
これで、private.xmlなどで何も設定しなければ初期値の値が、 設定されればそのあたいがこの設定部分で使われる様になります。
ちなみに、新たな設定を加えるには Resources以下にある include/checkboxディレクトリにファイルを置いて、 vim_emu.xml等のファイルを置いて、 Resources/checkbox.xmlの中に
<include once="true" path="{{ ENV_Karabiner_Resources }}/include/checkbox/vim_emu.xml" />
といった形で設定を加えます。
これらの設定はコンパイルとかしなくても既にインストールしてある Karabiner.appの中のファイルを直接いじることでも出来るので 気軽にテストできます。