Changer le comportement d'activation (onglet) pour les mappages Vimperator

0

Je souhaite créer un nouveau mappage de clé vimperator qui duplique la fonctionnalité d'annulation, mais ouvre l'onglet dans un onglet non ciblé / en arrière-plan.

Je sais que tabopen utilise le drapeau! pour basculer le comportement d'activation pour le nouvel onglet, mais la commande: u! ne fonctionne pas de la même manière. Est-il possible de le faire sans recourir à javascript (que je ne connais pas)?

cccqmp
la source

Réponses:

0

Ajoutez le code suivant à votre .vimperatorrcfichier pour créer une commande undobpermettant de rouvrir les onglets fermés en arrière-plan, en préservant leur historique et en n’affectant pas l’onglet alternatif en cours.

command! undob -description "Undo closed tab in background" :js undob();
:js <<EOF
  undob = function() {
      var currT = gBrowser.selectedTab;
      var ssService = Components.interfaces.nsISessionStore;
      var ssClass = Components.classes['@mozilla.org/browser/sessionstore;1']
      var ss = ssClass.getService(ssService);
      var closedTabs = JSON.parse(ss.getClosedTabData(window));
      var ct0 = closedTabs[0]
      ss.undoCloseTab(window, ct0);
      gBrowser.selectedTab = currT;
  }
EOF

Exemple de liaison de clé C-cu:

nnoremap <C-c>u :undob<CR>
pyrocrasty
la source
Il semble que cela continue à faire basculer le focus vers le nouvel onglet ouvert. Je voudrais garder le focus sur l'onglet en cours et "annuler" l'onglet fermé sans y basculer.
cccqmp
Désolé pour ça. Je suis confus et viens de reproduire normale :undo. En fait, je ne peux pas penser à un moyen de faire ça tout seul. Vimperator ne semble pas avoir la :backgroundcommande, et même sur Pentadactyl, il ne semble pas fonctionner avec :undo. Vous pourriez avoir besoin d'une fonction javascript personnalisée. Je vais y regarder plus tard et je reviendrai vers vous.
pyrocrastie
@ ccqmp: Ok, ça fonctionne. Faites-moi savoir s'il y a des problèmes.
pyrocrastie