Firefox アドオンの KeySnail に、スクロールに関する機能を追加する Scrollet プラグインを入れて、KeySnail の設定ファイル(_keysnail.js)を少し変更。
key.setViewKey('j', function (ev) { key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_DOWN, true); key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_DOWN, true); key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_DOWN, true); key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_DOWN, true); key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_DOWN, true); }, '5行スクロールダウン'); key.setViewKey('k', function (ev) { key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_UP, true); key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_UP, true); key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_UP, true); key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_UP, true); key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_UP, true); }, '5行スクロールアップ');
上のように書いていたのですが、Scrollet の機能を使って以下のようにしました。
key.setViewKey('j', function (ev) { plugins.scrollet.scrollLines(5) }, '5行スクロールダウン'); key.setViewKey('k', function (ev) { plugins.scrollet.scrollLines(-5) }, '5行スクロールアップ');
コードスッキリ!
あと、vim のマークのようなこともできるようなので以下のように記述。
key.setViewKey('m', function (ev, arg) { ext.exec("scrollet-set-mark", arg, ev); }, '現在の位置をマークに保存', true); key.setViewKey('C-m', function (ev, arg) { ext.exec("scrollet-jump-to-mark", arg, ev); }, 'マークに保存された位置へジャンプ', true);
vim とは違ってファイルを超えたマークは出来ず、ブラウザを終了するとマーク位置情報は消えるみたいです。それでも一時的に場所を記録できるのは長いページでは便利だなー。