Windows上のVSCodeやJetBrains RiderでVIMを使うとき、ESC押下でIMEをオフにする方法。
問題
WindowsのVSCodeのVim拡張やJetBrains RiderのIdeaVimで日本語入力中にESCを押下してコマンドモードに戻ると、IMEがオン状態ではコマンドがうまく入力できない。
対応
キー入力自動化ツールAutoHotkeyでESC
キーダブルプレス時にIMEをオフにするスクリプトを作成する。
- AutoHotkey公式サイトからAutoHotkeyをダウンロードしてPCへインストール。
- 任意の場所に拡張子
.ahk
で新しいテキストファイルを作成する。 - 後述のサンプルソースコードのスクリプトをコピー&ペーストして保存する。
- 作成したAutoHotkeyスクリプトファイルを実行する。
サンプルソースコード
#If WinActive("ahk_exe rider64.exe") or WinActive("ahk_exe Code.exe")
~Esc::
if (A_PriorHotkey = "~Esc" && A_TimeSincePriorHotkey < 400)
{
Send {vk1A}
}
return
#If
上記スクリプトを実行した状態でVSCode等でIMEがオンの状態からESCキーをダブルプレス(2回連続押下)すると、IMEがオフになり半角入力状態になります。
ESCキーをダブルプレスとしているのは、IME変換中にESCで取り消ししたいなどESC本来の機能を損なわないようにするためですので、1回押下で良いという方は適宜if文の部分を削除してください。
参考ウェブサイトなど
- Microsoft Learn
キーボード日本 – ImeOn / ImeOff の実装
以上です。