IdeaVimで、Control+[ を Escape として使う。(Macの場合)

JISキーボードを使っていると、IdeaVim (IntelliJ IDEA, RubyMine, Android Studio などの、Vimプラグイン)で、Control + [ を押したときに、Escapeとして扱ってくれなくて困る。

検索してみると、~/.ideavimrcinoremap <C-]> <Esc> などと書く方法が見つかったけど、これだとコード補完のポップアップが出ている時に Control + [ が効かないっぽい。

そこで、Karabinerを使ってキーを入れ替えたらうまくいった。 private.xml に、以下のような設定を書いて、有効にすればOK。

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>JetbrainsApps</appname>
    <prefix>com.jetbrains.</prefix>
  </appdef>
  <item>
    <name>Use CONTROL + JIS_BRACKET_LEFT as ESCAPE in JetbrainsApps</name>
    <identifier>private.jetbrains_control_jis_bracket_left</identifier>
    <only>JetbrainsApps</only>
    <autogen>
      __KeyToKey__ KeyCode::JIS_BRACKET_LEFT, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL,
      KeyCode::ESCAPE
    </autogen>
  </item>
</root>

ちなみに、¥ と \ を入れ替えるのは、普通に ~/.ideavimrc に書けば良さそう。

inoremap ¥ \
inoremap \ ¥

USキーボードを使ったほうが良いのかなぁ