✍️

Vimの日本語入力時、left_control + open_bracketでノーマルモードにする時に、自動的に英数入力に切り替える

に公開

概要

CursorやObisidanを利用している際、インサートモードで日本語入力をする機会があると思います。
その際、日本語入力になったままinsertモードに切り替えた時に、うまくnormalモードの操作ができない現象が発生していました。これはnormalモードは英数字入力じゃないと動かないことによるものだったので、normalモード切り替え時に自動的に英数入力に切り替えるようにして対応してみました。

対応方法

  • im-selectをinstall
  • Karabinerでleft_control + open_bracket時にim-selectを叩くようにする

im-selectをinstall

https://github.com/daipeihust/im-select からgetしましょう。

Karabinerの設定

Complex Modificationsで以下の設定を入れましょう

{
    "description": "Ctrl-[ で Esc & 英数(グローバル)",
    "manipulators": [
        {
            "from": {
                "key_code": "open_bracket",
                "modifiers": {
                    "mandatory": ["control"],
                    "optional": ["any"]
                }
            },
            "to": [{ "key_code": "escape" }],
            "to_after_key_up": [{ "shell_command": "/bin/sh -lc 'PATH=/opt/homebrew/bin:/usr/local/bin:$PATH; im-select com.apple.keylayout.ABC'" }],
            "type": "basic"
        }
    ]
}

Discussion