Windowsの無変換変換キーをMacの英数かなキーのように使う

Macの日本語キーボードでいいのは英数キーでIMEオフ、かなキーでIMEオンとなるところ。今がIMEオンなのかオフなのかを気にせずにIMEのオンオフを切り替えられる。

Windowsの標準的な動作だと半角/全角キーでIMEオンオフのトグルとなるので、オンにするつもりがオフになったり、オフにするつもりがオンになったりといったことが多発する。
Windows10はIMEのオンオフを切り替えると一瞬のポップアップで「あ」とか「A」とか出てどのモードに切り替わったか分かりやすく教えてくれるが、それでもオンオフの誤切り替えが頻繁に起こることに違いはない。わずらわしい。

Macと同じ操作感をWindowsでも実現したい。そのために日本語キーボードを使っているのだから。

Google日本語入力で設定

まずはGoogle日本語入力のキー設定でMacの英数かなキーと同じような設定ができそうなのでやってみる。

タスクバーからGoogle日本語入力のプロパティを開いてキー設定で無変換をIMEオフ、変換をIMEオンに割り当て。
一応だいたいは期待通りの動作になった。

しかし無変換がIMEオフにしているはずなのにトグルの動作になってしまうという問題が。

これはバグなのかなあ。
ちょっと使ってみたが中途半端でイマイチの使用感であった。トグルによる誤切り替え多発。

MS IMEで設定

MS IMEでも同じような設定ができるようなのでダメ元でこっちもやってみた。

タスクバーからMS IMEのプロパティを開いてキー設定で無変換をIMEオフ、変換をIMEオンに割り当て。
するとGoogle日本語入力とは違ってMS IMEの方は期待通りの動作だった。やったぜ。

MS IMEはGoogle日本語入力よりも文脈を読んで変換する力が弱いが、まあどちらもATOKに比べればバカなのでこれでいいかな。
こないだ使い始めたばっかりだけどグッバイGoogle日本語入力。

MS IMEの予測入力でクラウド候補をONにしてみたら意外と快適かもしれん。てかりんな変換って何w

ESCにもIMEオフを割り当て

さらにインサートモードからコマンドモードに入った際にIMEオフにするということをやりたくて、ESCにもIMEオフを割り当ててみた。これでVSCodeのVimモードが快適!

ただIMEオンの時にインサートモードからコマンドモードに入るにはESC二度押しが必要になる。IMEオンの状態でESCを押すとVimのモード変更よりIMEオフが優先されるゆえ。
まあこれはもともと変換途中でキャンセルしてコマンドモードに入るのに連続押しする癖があるからだいじょぶかな。だいじょぶぽい。

AutoHotkeyとVSCodeの設定を組み合わせてコマンドモードに入ったときにIMEをオフにするようなこともできるみたいだけど、ちょっと試してうまくいかなかったので保留中。

余談

USキーボードで左右Altの空押しで英数かなのように動作させるというものもあるが、素早く入力しているととどうしてもAlt+何かのキーという判定になってしまってうまく切り替えられないのでやめたのだった。
昔MacでUSキーボードを短期間使っていて通った道だった。