Переместить соответствующие вкладки в новую группу вкладок в пентадактиле

462
BitShifter

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

1

1 ответ на вопрос

0
pyrocrasty

Решение.

  • Следующий 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.

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

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

Похожие вопросы