vimperator + SplitBrowser で :sp[lit] コマンド
vimperator 0.5.3用に書き直しました
以下のFirefox Addonのコラボレーション。
- vimperator
- SplitBrowser
vimと言ったらsp
コマンドでしょ!?
タブも良いけど画面分割も行いたい!
ってことで一部作ってみた。
%HOME%/_vimperatorrcに以下を追加*1。
:javascript <<EOF vimperator.commands.add(new vimperator.Command(['sp[lit]'], function(urls){ var b = SplitBrowser.activeBrowser; if (b.localName != 'tabbrowser') b = gBrowser; if (!urls) { vimperator.echo('Split and load current URL.'); SplitBrowser.addSubBrowserFromTab(b.selectedTab, SplitBrowser.POSITION_TOP); } else { if ( typeof urls == 'string' ){ urls = urls.toURLArray(); } var url = typeof urls[0] == 'string' ? urls[0] : urls[0][0]; vimperator.echo('Split and load '+ url); SplitBrowser.addSubBrowser(url, null, SplitBrowser.POSITION_TOP); } },{ usage: ['sp[lit]'], shortHelp: 'split browser', help: 'sp[lit] [URL]', completer:function(filter){ return vimperator.completion.get_url_completions(filter); } } )); EOF
:split
を作ったなら:vsplit
も、と思ったが使用頻度が少ないと見て止めた。作るべきは以下のようなものだろう
- Ctrl + w+[hjkl] | Ctrl + wによるフォーカス移動
:only
で分割ブラウザを閉じる動作
しかし、分かっていない事が多い。
- 2段階によるキーボード操作は
map
で対応できるのか?- 出来ない場合、どのようにキー操作を登録するのか
- ブラウザ分割した時、フォーカスする要素は何か
両者の拡張機能を解析していけば分かると思うけど、道のりはちょっと長そうだ。でも、分割したは良いものの、その後の操作にマウスが必要じゃぁvimperatorの意味が無いからね。がんばりたいところ。
なんつーか、中途半端なもので申し訳ないが、フィードバック等あればヨロシク!
*1:_vimperatorrcについては「環境設定ファイル vimperatorrc の詳しい手順 - k0yの日記」に詳しく載っている