Vimperator + SplitBrowser プラグイン、再び


やっとこさ、Vimperatorの最新版に対応させたよ。
ただし、Extend-Hintモードから分割して開くことができなくなっています*1

変更点

  • 新たにvs[plit]コマンドの追加
  • split,vsplitコマンドで複数URLに対応*2
  • onlyコマンドに-gオプションを付けると分割したブラウザの集約をするように変更*3
  • s + 各mapコマンドで分割したブラウザ側にmapコマンドを送れるように
    • 意味不明だね、説明を「問題点」に書くよ
    • 例えば、sHで戻るとかsgtで次のタブを選択とか

問題点

Vimperatorのコマンドやマップは頻繁にgetBrowser()という関数を呼びます。この関数はFirefox側が用意している関数で、tabbrowser要素*4を返す関数です。通常この要素は一つしかないのですが、SplitBrowserは分割する度にこの要素を新たに生成します。
そうです。コマンドやマップは、たとえ分割されたブラウザがフォーカスされていても、元からあったメインのtabbrowser要素に対して各コマンドを実行してしまうのです。
例えば、「戻る」をしようとHを押したとすると、どのブラウザを選択していてもメインブラウザの「戻る」が実行されてしまいます。
getBrowser()関数を上書きしてあげる手がありますが、影響範囲が計り知れないため怖くて出来ません。Piroさん助けてー

*1:現状ではExtend-Hintモードの拡張性が低い。実現するにはVimperator側にパッチが必要と思われる

*2::openコマンド互換

*3:何も指定しない場合は全ての分割ブラウザを閉じる

*4:タブやブラウザを管理する大変重要な要素