Solución.

Solución.

¿Alguien sabe si puedo mover todas las pestañas que coinciden con una expresión a un grupo de pestañas diferente? ¿Si es así, cómo?

Respuesta1

Solución.

  • El siguiente archivo Pentadactyl ex (con Javascript incorporado) debería proporcionar un comando que hará coincidir la etiqueta de todas las pestañas con una expresión regular y moverá las pestañas coincidentes a un grupo con una identificación especificada. Tenga en cuenta que la coincidencia no distingue entre mayúsculas y 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
    
  • Lo he subido a Github comoEsencia, para que puedas descargarlo desde allí si lo deseas.

  • Este guión requiere laGrupo de pestañasenchufar.

    advertencia: En mi sistema, colocar este complemento ~/.pentadactyl/plugins(que se cargará cuando se inicie Pentadactyl) interrumpe por completo la funcionalidad de los grupos de pestañas. Para solucionarlo, tengo que desactivar Pentadactyl, reiniciar FF y volver a activar Pentadactyl. La solución parece ser cargar TabGroupiedespuésPentadactyl se ha iniciado (eliminándolo del /plugins/directorio y simplemente obteniendo una vez que se ha iniciado FF).

Configuración recomendada

  • guardar ambostgroup-moveselected.pentayTabGroupie.jsen su ~/.pentadactyldirectorio.

  • Agregue la siguiente línea a su .pentadactylrc:

    command! tginit :source ~/.pentadactyl/TabGroupie.js | source ~/.pentadactyl/tgroupmoveselected.penta
    
  • Cuando inicia FF, puede inicializar la funcionalidad del grupo de pestañas Pentadactyl con el comando :tginit.

  • Si desea utilizar un determinado patrón y/o grupo de pestañas con frecuencia, puede crear una asignación o un comando como acceso directo. Por ejemplo, si desea utilizar C-muna tecla de acceso rápido para enviar todas las pestañas con "pentadactyl" en el título a un grupo de pestañas con ID "penta", puede usar este comando:

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

información relacionada