Hatena::Groupvimperator

hogelogの日記

 | 

2009-05-10

Re: vimperatorrcでキーコードを指定してmapする 00:42

5/24 追記

5/22あたりのコミットでキーイベントまわりの処理変わってるんで、以降だと下のプラグインはエラー吐きますね。


無変換、変換、カタカナひらがなキーなどのvimperatorに登録されてないキーイベントはそもそもmapとかに投げられないのでmapコマンドでどうこうとかできない。しかしもちろんvimperator-pluginはfirefoxでできることはなんでもできる。

vimperator/pluginにこんなの放り込んでおけば<Henkan>、<Muhenkan>、<Katakana>、<CapsLock>がmap系で使えるようになります。

(function() {
    const extra = uneval([
        [ 28, ["Henkan"]],
        [ 29, ["Muhenkan"]],
        [ 242, ["Katakana"]],
        [ 240, ["CapsLock", "Caps"]]
    ]);
    liberator.eval('keyTable = keyTable.concat('+extra+')', events.destroy);
})();

28,29,242,240とかはkeypress時に投げられるeventのkeyCode。

手元のWindows XPはいったThinkpad X61で動くことしか確認してないけど、自分ではCapsLockだ変換だといったキーは窓使いの憂鬱でコントロールやらシフトやらに割り当ててこのプラグインを使わないことは明白なのでさほど調べる気はわかない。

liberator.evalはevents.jsの中のprivateな変数keyTableをいじるための黒魔術ですね。おそろしいおそろしい。

 |