Vimperator から Tree Style Tab を操作
はじめに
ブラウジング環境としての Firefox + Vimperator + Tree Style Tab (ツリー型タブ) が最強なんだけど、
Vimperator からツリー型タブを操作できるようにしたらもっと快適だった。
vimperator から Tree Style Tab の API を呼ぶ
Tree Style Tab にはツリーを操作したり要素を取得するための JavaScript の API があり、これを Vimperator のマッピング等で呼び出すようにすればいろいろなことができる。
API についての説明は Tree Style Tab の公式ページ にある。
Vimperator から JavaScript の関数等を呼び出すには :javascript
(または :js
) コマンドを使えば良い。
例えば、現在のタブの複製を子タブに作成するようなマッピングは下記のように設定する。
nnoremap <C-S-t> :<C-u>js TreeStyleTabService.readyToOpenChildTab(gBrowser.selectedTab, false)<CR>:tabduplicate<CR>
TreeStyleTabService.readyToOpenChildTab
というのが Tree Style Tab の API で、タブを作成するコマンド前にこいつを呼ぶと作成されたタブが現在のタブの子になる。
もっと複雑な場合
もっと複雑なことをしようとするとワンライナーで JavaScript を書くのが辛くなってくる。
そういう時は実現したいことをあらかじめ JavaScript の関数にしておいて、マッピングからその関数を呼ぶようにすれば良い。
複数行の JavaScript を Vimperator から呼ぶには :js <<EOF
と EOF
の間の行に JavaScript を書けば良い。(EOF の部分は好きな文字列でよい)
例えば、すべてのルートのタブを折りたたむような機能は下記のように設定する。
nnoremap zM :<C-u>js treeFoldCollapseAll()<CR>
js <<EOF
function treeFoldCollapse(tab) {
gBrowser.treeStyleTab.collapseExpandSubtree(tab, true);
}
function treeFoldCollapseAll() {
TreeStyleTabService.rootTabs.forEach(treeFoldCollapse);
}
EOF
※ 自分の vimperatorrc
https://github.com/cohama/dotfiles/blob/master/.vimperatorrc
Author And Source
この問題について(Vimperator から Tree Style Tab を操作), 我々は、より多くの情報をここで見つけました https://qiita.com/c0hama/items/abb316168e17c8c02dfb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .