解決方案。

解決方案。

有誰知道我是否可以將與表達式匹配的所有選項卡移動到不同的選項卡組中?如果是這樣,怎麼辦?

答案1

解決方案。

  • 以下 Pentadactyl ex 檔案(帶有嵌入式 Javascript)應提供一個命令,該命令將所有選項卡的標籤與正規表示式相匹配,並將匹配的選項卡移至具有指定 id 的群組。請注意,匹配不區分大小寫。

    " tgroup-moveselected.penta
    " Provides the command tgroup-moveselected, which moves all tabs matching a
    " given regular expression to the group with specified id.
    " eg.  :tgroup-moveselected "penta" "pentadactyl"
    "      moves any tabs whose label matches /pentadactyl/ to the group with id "penta"
    " Requires the TabGroupie plugin.
    
    command! tgroup-moveselected 
        \ -nargs=+ 
        \ -description "move tabs matching regex to a given group" 
        \ -js tgroupMoveSelected(args[0], RegExp(args[1]))
    
    js <<EOF
    
    function getPlugin(s) {
        for (x in plugins.contexts) {
            if (x.contains(s))
                return plugins.contexts[x][s];
        }
    }
    
    var TabGroupie = getPlugin("TabGroupie");
    
    function matchingTabs(rx) {
        var alltabs = tabs.allTabs;
        var alltabs = gBrowser.getTabsToTheEndFrom(0);
        function matches(t) {
            return rx.test(t.label.toLowerCase());
        }
        var matching = alltabs.filter(matches);
        return matching;
    }
    
    function matchingTabsInGroup(rx) {
        var alltabs = gBrowser.getTabsToTheEndFrom(0);
        function matches(t) {
            return rx.test(t.label.toLowerCase());
        }
        var matching = alltabs.filter(matches);
        return matching;
    }
    
    function tgroupMoveSelected (targetgrp, rx) {
        var matching = matchingTabs(rx);
        var tgrpId = TabGroupie.getIdByTitle(targetgrp);
        var i, t;
        for (i=0; i<matching.length; ++i) {
            t = matching[i];
            TabView.moveTabTo(t, tgrpId);
        }
        TabView.hide();
    }
    
    EOF
    
  • 我已將其作為 上傳到 Github要旨,因此如果您願意,可以從那裡下載。

  • 該腳本需要標籤群插入。

    警告:在我的系統上,將此插件放入~/.pentadactyl/plugins(在 Pentadactyl 啟動時加載)完全破壞了選項卡組功能。要修復它,我必須停用 Pentadactyl,重新啟動 FF 並重新啟用 Pentadactyl。解決方案似乎是加載 TabGroupiePentadactyl 已啟動(透過將其從/plugins/目錄中刪除並在 FF 啟動後進行購買)。

推薦設定

  • 保存兩者tgroup-moveselected.pentaTabGroupie.js在你的~/.pentadactyl目錄中。

  • 將以下行新增至您的.pentadactylrc

    command! tginit :source ~/.pentadactyl/TabGroupie.js | source ~/.pentadactyl/tgroupmoveselected.penta
    
  • 當您啟動 FF 時,您可以使用命令初始化 Pentadactyl 選項卡組功能:tginit

  • 如果您想要經常使用某個模式和/或選項卡組,您可以建立對應或命令作為捷徑。例如,如果您想要使用C-m熱鍵將標題中包含「pentadactyl」的所有標籤傳送至 ID 為「penta」的選項卡組,則可以使用下列命令:

    :map <C-m> :tgroup-moveselected "penta" "pentadactyl"<CR>
    

相關內容