如何使用 vimperator 关闭右侧的标签页?

How to close tabs to the right using vimperator?

我正在使用 Firefox,并安装了 vimperator。这很好,但我找不到使用热键关闭右侧标签的方法。你能告诉我怎么做吗?谢谢。

map <your_key_binding> gt :bd -s left<CR> 添加到您的 vimperatorrc。

解释:

gt 切换到下一个右边的标签,:bd -s left 删除这个标签然后切换到左边的标签。

全部关闭到right/left。

将以下代码放入您的 .vimperatorrc 文件中。它定义了命令 :closealltoright:closealltoleft 以及绑定 v>v< 分别。根据需要更改从底部“映射”开始的行中的绑定。

js <<EOF

closeAllToRight = function () {
    var current = tabs.getTab();
    var currentIx = tabs.index(current);
    var nexttab = current.nextElementSibling;
    var N = tabs.count;
    var numToClose = N - (currentIx + 1);
    tabs.remove(nexttab, numToClose);
}

closeAllToLeft = function () {
    var current = tabs.getTab();
    var currentIx = tabs.index(current);
    var firsttab = tabs.getTab(0);
    var N = tabs.count;
    var numToClose = currentIx;
    tabs.remove(firsttab, numToClose);
}

EOF

" close tabs to left
map v< :js closeAllToLeft()<CR>
" close tabs to right
map v> :js closeAllToRight()<CR>

command! closealltoright :js closeAllToRight()
command! closealltoleft :js closeAllToLeft()

我已将这两个命令上传为 Gist


五指版。

command! closetabstoleft
    \ -description "Close all tabs to the left of the current tab"
    \ -js
    \ var firstTab = tabs.getTab(0);
    \ var numToClose = tabs.getTab().dactylOrdinal - 1;
    \ tabs.remove(firstTab, numToClose);
command! closetabstoright
    \ -description "Close all tabs to the right of the current tab"
    \ -js
    \ tabIndex = tabs.getTab().dactylOrdinal - 1;
    \ var nextTabIndex = tabIndex + 1;
    \ var firstTab = tabs.getTab(nextTabIndex);
    \ var N = tabs.allTabs.length;
    \ var numToClose = N - nextTabIndex;
    \ tabs.remove(firstTab, numToClose);

map v< -ex closetabstoleft
map v> -ex closetabstoright

为方便起见,我将它们放在 gist 中。

更多选项卡命令可以在我的 Pentadactyl folder 中找到(命令和绑定在 .pentadactylrc 中,但可能依赖于 utils.js 中定义的函数)。