Vimperatorのコマンドラインで自動的にIMEをオフにする

VimperatorのコマンドラインIMEがオンになっていると, f等でヒントを選択できなくて困ることがある. 32ビットのWindows XPを使っていたときは, ime_controller.jsを使うことでコマンドラインや挿入モードでは自動的にIMEをオフにすることができたけれど, 他の環境でうまく動作しなくて困っていた.

ime_controller.jsが動かないのはFirefoxにおけるCSSのime-modeプロパティの動作環境が限られているのが原因で, Firefoxに限らずたとえばIME and DiMENSiONもうちの環境(Windows 7 64ビット)では動作が不完全(たまにIMEの状態が反映されない, IMEのオン・オフを制御できない)だったりして, IMEをアプリケーションから制御すること自体が難しいらしい*1.

そんな中で, Linux上のVimperatorからSCIMのオン・オフを制御する方法を見つけた:
Linux + Vimperator2.x で hint時にIMをオフにする - 備忘録 beta

これは, IMEのオンとオフのショートカットキーを個別に割り当てておいて, Vimperatorから外部コマンドを呼び出すことでキー入力をエミュレートするという手法. この方法ならWindowsにも対応できることに気づいたので, Vimperatorのプラグインを実装してみた.

*1:IME and DiMENSiONはFlash PlayerのIME制御機能を使っているので, FirefoxだけでなくFlash PlayerもIMEの扱いに難儀している模様

続きを読む