LoginSignup
29
28

More than 5 years have passed since last update.

Vimで挿入モードから抜ける時に英数入力に切り替える

Posted at

開発にMac book使ってるのでMacでの話です。
Vimでコマンドモードに戻る時にかな入力だと具合が悪いので、
方法がないかとググったら、KeyRemap4MacBookを使う方法が見つかったんだけど、
自分のしたい設定にするのには、いくつか情報が足らなかったのでメモ。

何がしたかったか

自分がしたかったのは、

ESC と Ctrl+C と Ctrl+[ 全部に適応したい。
Terminal と MacVim と Sublime など、vimのkeybindなものに適応したい。

ググって見つかるのは、

ESC と Ctrl+C に適応
Terminal にのみ適応

でした。

普通に設定をコピって適当に書き換えればいけると思ったのですが、
ちょっと追加する必要がありました。

何を追加したのか

KeyCodeの追加

今回でいうと、[ の KeyCodeがデフォでいないようだったので追加しました。
(デフォであるかもしれないけどわからなかった。)

<symbol_map type="KeyCode" name="[" value="0x1e" />

EventViewerというウィンドウを立ち上げて、
keyboardを適当にタイプすると、Eventの情報を表示してくれます。
その情報のcodeの欄の数値をvalueに設定すると良いです。

アプリ定義の追加

<appdef>
    <appname>SUBLIMETEXT2</appname>
    <equal>com.sublimetext.2</equal>
</appdef>

TerminalとVimはあらかじめ定義されていたのですが、
Sublime Text2はさすがに定義されていなかったので追加しました。
KeyCodeの時と同じくEventViewerを開いて、
追加したいアプリをアクティブにすると情報が表示されるので、
CurrentApplicationの文字列をequalタグの値に設定。

他のアプリを追加したい場合は同じように設定してあげればOK。

出来上がった設定ファイル

private.xml
<?xml version="1.0"?>
<root>
    <symbol_map type="KeyCode" name="[" value="0x1e" />
    <appdef>
        <appname>SUBLIMETEXT2</appname>
        <equal>com.sublimetext.2</equal>
    </appdef>
    <list>
        <item>
            <name>LeaveInsMode with EISUU(vim keybind apps)</name>
            <identifier>private.vim_keybind_apps_esc_with_eisuu</identifier>
            <only>TERMINAL,VI,SUBLIMETEXT2</only>
            <autogen>--KeyToKey-- KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen>
            <autogen>--KeyToKey-- KeyCode::[, VK_CONTROL, KeyCode::[, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
            <autogen>--KeyToKey-- KeyCode::C, VK_CONTROL, KeyCode::C, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
        </item>
    </list>
</root>

以上メモでした。

29
28
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
28