2016/01/11

VSCode使用中にKarabinerのVimモード(エミュレーション)に入らないようにする

KarabinerのVim Emulationを使用すると、Vim以外で文書を編集するときでもhjklでカーソルを動かしたりできて便利です。しかし、それ自体がVimモードを持っているアプリケーションを使うときは無効にする必要があります。

有効にするアプリケーションの選択

有効にするアプリケーションの設定はprivate.xmlに記述します。private.xmlについて詳しくはリファレンスを参照してください。 このXMLファイルは例えば次のようになります。 VIM_EMU_IGNORE_APPSと書いてあるところの下に列挙されているのが、Vim エミュレーションを使用しないアプリケーションです。この中で指定されたアプリケーション使用中はescキーを押してもVimエミュレーションが始まりません。

VSCodeの設定はまだない

たいていのアプリケーションはすでに設定が用意されているので、そのアプリケーションに対応するコードを調べて書けば良いのですが、VSCodeについてはまだありませんでした。このため自分で追加する必要があるようです。アプリケーション内のappdef.xmlに記述した方がキレイなのではないかと思ったものの、今後VSCodeが追加される可能性もありそうなので、ひとまずprivate.xmlの中にVSCodeの設定も一緒に書いてみました。
上に示したprivate.xmlの先頭にあるのがVSCodeの設定です。<appdef>から</appdef>までを記述してVIM_EMU_IGNORE_APPSのリストにVSCODEを追加すればVSCode使用中はVimエミュレーションが発動しなくなります。