im-select を使って VSCode Vim の半角カナ入力を自動で脱する

最初に

VSCode Vim 使ってますよね?使っていたら、インサートモードからノーマルモードに切り替えた際に、日本語入力から英数入力になってほしいですよね? 僕の場合、Cmd + j をノーマルモードに戻るキーバインドに設定しています。Esc でも戻れます。

ここで登場するのが、im-select です。

やること

Install im-select

HomeBrew で im-select をインストールします。

1
2
brew tap daipeihust/tap
brew install im-select

brew tap は、公式以外の formula を取得するコマンドです。 HomeBrew 経由でインストールした場合、バイナリの保存先は /opt/homebrew/bin/im-select になります。後で使います。

Edit VSCode settings.json

VSCode の settings.json をいじります。

1
2
3
4
    "vim.autoSwitchInputMethod.defaultIM": "com.apple.keylayout.ABC",
    "vim.autoSwitchInputMethod.obtainIMCmd": "/usr/bin/true",
    "vim.autoSwitchInputMethod.switchIMCmd": "/opt/homebrew/bin/im-select {im}",
    "vim.autoSwitchInputMethod.enable": true,

以上です。ことえりや Google IME、SKK などをお使いの方は必要に応じて defaultIME を変更ください。 あとは、通常どおりインサートモードからノーマルモードに戻れば、IME(Mac では単に IM:Input Method と呼ぶ?)がデフォルトに戻ります。

肝は、

  • デフォルトが ABC という IM
  • IM の取得は常に true を返すだけ
    • 本来はインサートモード移行時にノーマルモードのときの IM に切り替えるために使う

です。

ともあれ、ノーマルモードへの移行時は defaultIM に戻る、とだけ覚えておけば十分そうです。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。