Firefox AddonであるVimperatorの解説(主に開発視点)

FrontPage > pluginList > feedSomeKeys.js
NamefeedSomeKeys.js
Description指定キーをWebコンテンツに流す
Authorteramako
Downloadhttp://svn.coderepos.org/share/lang/javascript/vim...

Web2.0(笑)と言われる中、各Webアプリケーション(Gmail,LDR,RememberTheMilk)が独自にキーバインドを定めてアクセシビリティを高めている。
しかし、Vimperatorには各キー入力を奪う特性があるため、Webコンテンツまでキーイベントが届かないデメリットがある。<C-z>(旧:<C-q>)でVimpキーバインドを無効、<C-v>で一時的に無効にできるが、正直面倒。どうにか両者を両立できないかと思い作ったプラグイン。

正直に明かそう、作った当初は駄作だと思っていた。あまりに設定が面倒なのだ。しかし、retlet氏によるretlet.net - Vimperatorと、ウェブアプリやUserscriptのショートカットキーを共存させるfeedSomeKeys.jsプラグインの記事で一気に注目を浴びることとなった。これを以って良作入りしたとは言えないが、多くの(?)人が使うようになってしまった。今更デザインを一新する事も出来ず、苦悶中。



コマンド

:f[eed]map {lhs} [num]{rhs}

基本的にはmapコマンドに似せている。{lhs}{rhs}のキーイベントに変換してWebコンテンツ側へ流すように設定するコマンドである。
2番目の引数[num]{rhs}は省略可能で省略すると{lhs}をそのままWebコンテンツへ流すようになる。
[num]は数値を指定し、Webコンテンツのフレームの場所となる(1:親フレーム(省略可),2:1番目のフレーム,...)。Gmailの操作対象がフレーム内にあることからこのような指定方法になっている。

:f[eed]mapclear or :fmapc

定義したfmapをクリアするコマンド

公開メンバやメソッド

liberator.plugins.origMap

一般のユーザマップと重なったマップが一時的に保管されている。
liberator.Mapの配列。

liberator.plugins.feedMap

現在fmapにて定義したliberator.Mapの配列

liberator.plugins.setup (keys)

fmapコマンドでチマチマ登録するのが面倒な場合、こちらのメソッドを使用すると一気に登録が可能。ただし、追加登録ではなく、一度全て削除した後に登録となる。
keys
以下の様な配列を指定可能。
 keys = [
  "lhs1",
  ["lhs2","rhs2"]
 ]
  • メンバが文字列であればその{lhs}をそのまま登録
  • 配列であれば1番目を{lhs},2番目を{rhs}に見立てて登録

liberator.plugins.reset()

登録したfmapをクリアして、一般のユーザマップをリストアするメソッド。

使い方

ブラウジング中に設定するより、.vimperatorrcにautocmdコマンドと組み合わせて使うことが多い。
詳しくは上記retlet氏のページを参照
タグ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

メニューバー






どなたでも編集できます