[Mac] Vimのインサートモードを抜けるときにIMEをオフにするKeyRemap4MacBookのprivate.xml設定

こんにちは。@kasumiiです。

最近になってVimを使いはじめたので、あれこれ少しずつ設定をしています。書いておかないと忘れちゃうのでメモメモ。

インサートモードで日本語を入力したあと、ESC キー(または Ctrl + [ )でノーマルモードに戻るとき、いちいち英数入力に切り替えないといけないのが面倒なので、KeyRemap4MacBookに以下のような設定を追加しました。

対象アプリ:ターミナル、iTerm2、MacVim
条件:ESC または Ctrl + [ が押されたとき
動作:挿入モードを抜けて日本語入力をオフ

ググったら同じようなこと書いてあるブログがたくさん出てくるけど、そのものズバリが見つからなかったので、いろいろ参考にしつつ自分なりに削ったり付け加えたりしています。

以下を、KeyRemap4MacBookの「Preferences」→「Misc&Uninstall」→「Open private.xml」でXMLファイルを開いて記述。

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>iTERM2</appname>
    <equal>com.googlecode.iterm2</equal>
  </appdef>
  <appdef>
    <appname>MACVIM</appname>
    <equal>org.vim.MacVim</equal>
  </appdef>
  <list>
    <item>
      <name>Leave Insert Mode with EISUU (vim keybind apps)</name>
      <identifier>private.vim_keybind_apps_esc_with_eisuu</identifier>
      <only>iTERM2,TERMINAL,MACVIM</only>
      <autogen>--KeyToKey-- KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen>
      <autogen>--KeyToKey-- KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
    </item>
  </list>
</root>

追加した設定にチェックを入れて、「ReloadXML」ボタンで設定を読み込み直せばOK。

ひとまずこれでインサートモードからノーマルモードへ戻るときに、日本語入力のままになっててあばばばば……ってのがなくなりそうです。よかったー。

【参考】mac のvim のinsert mode でesc キーを押した時、同時にime をオフにする
【参考】Vimを使う上でのIME(日本語入力)の取り扱い – rcmdnk’s blog