1

Кто-нибудь знает, могу ли я переместить все вкладки, соответствующие выражению, в другую группу вкладок? Если так, то как?

1 ответ1

0

Решение.

  • Следующий ex-файл Pentadactyl (со встроенным Javascript) должен содержать команду, которая будет сопоставлять метку всех вкладок регулярному выражению и перемещать соответствующие вкладки в группу с указанным идентификатором. Обратите внимание, что при сопоставлении регистр не учитывается.

    " 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 как Gist, так что вы можете скачать его оттуда, если хотите.

  • Этот скрипт требует плагина TabGroupie .

    предупреждение : в моей системе размещение этого плагина в ~/.pentadactyl/plugins (которое загружается при запуске Pentadactyl) полностью нарушает функциональность групп вкладок. Чтобы это исправить, я должен отключить пентадактиль, перезапустить FF и включить пентадактиль. Похоже, что решение состоит в том, чтобы загрузить TabGroupie после запуска Pentadactyl (удалив его из каталога /plugins/ и просто получив источник после запуска FF).

Рекомендуемая настройка

  • Сохраните оба файла tgroup-moveselected.penta и TabGroupie.js в вашем каталоге ~/.pentadactyl .

  • Добавьте следующую строку в ваш .pentadactylrc:

    command! tginit :source ~/.pentadactyl/TabGroupie.js | source ~/.pentadactyl/tgroupmoveselected.penta
    
  • Когда вы запускаете FF, вы можете инициализировать функциональность группы вкладок Pentadactyl с помощью команды :tginit .

  • Если вы хотите часто использовать определенный шаблон и / или группу вкладок, вы можете создать отображение или команду в качестве ярлыка. Например, если вы хотите использовать Cm в качестве горячей клавиши для отправки всех вкладок с "пентадактилем" в заголовке в группу вкладок с идентификатором "penta", вы можете использовать эту команду:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .