Mover as guias correspondentes para o novo grupo de guias em pentadáctilo

1

Alguém sabe se posso mover todas as guias que correspondem a uma expressão para um grupo de guias diferente? Se sim, como?

    
por BitShifter 27.01.2015 / 18:10

1 resposta

0

Solução.

  • O seguinte arquivo Pentadactyl ex (com Javascript integrado) deve fornecer um comando que corresponderá ao rótulo de todas as guias para uma expressão regular e moverá as guias correspondentes para um grupo com o ID especificado. Observe que a correspondência não diferencia maiúsculas de minúsculas.

    " 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
    
  • Eu fiz o upload para o Github como um Gist , para que você possa baixá-lo de lá, se você gostar.

  • Este script requer o plug-in TabGroupie .

    warning : No meu sistema, colocar este plugin em ~/.pentadactyl/plugins (a ser carregado quando o Pentadactyl for iniciado) quebra completamente a funcionalidade dos grupos de guias. Para consertar isso, tenho que desabilitar o Pentadactyl, reiniciar o FF e reativar o Pentadactyl. A solução parece ser carregar o TabGroupie após o Pentadactyl ter sido iniciado (removendo-o do diretório /plugins/ e apenas fornecendo uma vez que o FF tenha iniciado).

Configuração recomendada

  • Salve os tgroup-moveselected.penta e TabGroupie.js no seu diretório ~/.pentadactyl .

  • Adicione a seguinte linha ao seu .pentadactylrc :

    command! tginit :source ~/.pentadactyl/TabGroupie.js | source ~/.pentadactyl/tgroupmoveselected.penta
    
  • Quando você inicia o FF, é possível inicializar a funcionalidade do grupo de guias Pentadactyl com o comando :tginit .

  • Se você quiser usar um determinado padrão e / ou grupo de guias com freqüência, poderá criar um mapeamento ou um comando como um atalho. Por exemplo, se você quisesse usar C-m como uma tecla de atalho para enviar todas as abas com "pentadactyl" no título para um grupo de abas com id "penta", você poderia usar este comando:

    :map <C-m> :tgroup-moveselected "penta" "pentadactyl"<CR>
    
por 16.06.2015 / 12:44