ime_controller.js IME(Input Method Editor)を制御する

今日は「Vimperatorプラグインime_controller.jsをみんなにすすめよう」という話。

日本語環境では当然のように日本語を入力する。日本語は英語とは異なり文字数が非常に多いので、キーと文字とを一対一に対応付けることができない。そこで日本語の入力にはInput Method Editor(以下、IME)を使う。

VimperatorはIMEを考慮していないため、日本語を扱うユーザには違和感のある動作がままある。「くふんを狙え」へのアクセスを例に見ていこう。

まずは:open くふんと入力する。

これで、既定の検索エンジンに設定('defsearch')してあるGoogleから「くふん」を検索する準備ができた。この際、IMEをオンにしたことに注意してほしい。

そして<CR>を入力し検索を行う。

検索結果が表示される。画像からも分かるように「くふんを狙え」は先頭にある。

次はQuick Hintモード*1を使って「くふんを狙え」にアクセスする。fと入力する。

これでHintが表示される。「くふんを狙え」は15番であることが分かる。

次に15と入力する。

落胆である。IMEが邪魔をしてHintの入力として解釈されていないことが分かる。これでは一旦IMEをオフにして、Hintを表示するところからやりなおしである。

IMEを考慮していれば、このような場面では間違いなく自動でIMEを無効にしてくれる。Hintには数字しか表示されない*2のだから、IMEは無効で良いのだ。

そこでime_controller.jsである。

ime_controller.jsはIMEを制御する。つまり必要に応じてIMEを無効にすることができるのだ。これを使えば、Hintやコマンドなどの入力でのIMEにイライラすることもない。

ime_controller.jsは、見た目にこそ大きな変化はないが、使用感において大きな変化をもたらす。使っていないなら、ぜひ使ってみてほしい。

参考

あと、あまり関係がない話。この新しい「くふんを狙え(id:krogue)」にアクセスしたい場合は「くふん」ではなく「くふん krogue」で検索しないといけない。今の状況からサイト名をつけるなら「『くふんを狙え』を狙え」になる。繰り返しになるが、本文とはあまり関係がない。

肝心のime_controllerへのリンクを貼り忘れた。「参考」を追記した。

*1:モード名はQuick Hintモードでいいのだろうか。Hit-a-Hintのような機能と私は呼んでいた。

*2:既定動作