VSCodeVimのreadme を見ると im-select を使えとのことでしたが、なんか思ってたのと違うっぽいのでWin32API叩いて半角/全角を切り替えることにしました。
プログラムを用意する
github: https://github.com/iuchim/zenhan
実行ファイル
自分でビルドするか上のzipファイルに入ってる zenhan.exe をお好きな場所にコピーしておいてください。
今回は C:\Users\foo\bin にコピーしたとします。
VSCodeVim の autoSwitchInputMethod を設定
settings.json に次の設定を追加します。
"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "0",
"vim.autoSwitchInputMethod.obtainIMCmd": "C:\\users\\foo\\bin\\zenhan.exe",
"vim.autoSwitchInputMethod.switchIMCmd": "C:\\users\\foo\\bin\\zenhan.exe {im}",
保存したら完了です。
この設定だと、インサートモードに戻った時にIMEの状態を復元してくれますが、個人的には半角のままのほうが好みなので obtainIMCmd を次のようにしています。
"vim.autoSwitchInputMethod.obtainIMCmd": "C:\\users\\foo\\bin\\zenhan.exe 0",
参考にしたもの
大変参考になったというか、2つを混ぜて作りました。
ありがとうございます。