Wie kann ich die vorherige / nächste Seite in einem neuen Tab in Pentadactyl öffnen?

878
maki57

Wenn Sie durch Drücken von Hund Lzur vorherigen bzw. zur nächsten Seite gelangen (Alt + Links / Rechts bei Vanilla Firefox), was ist der Schlüssel zum Öffnen der vorherigen / nächsten Seite in einem neuen Tab?

Die Funktionalität, die ich erreichen möchte, ist wie das Klicken mit der linken und rechten Pfeiltaste neben der Adressleiste, vorzugsweise ohne Zugriff auf den Verlauf (z. B. für den privaten Browsing-Modus). Wenn möglich, gibt es eine Möglichkeit, dies für die andere zu tun Gegenstände in der :ju(Sprung-) Liste?

Anmerkung (15.05.2015): Ich bin vor einiger Zeit zu Vimperator gewechselt und mir fehlt immer noch die "Nächste / Vorherige Seite in neuem Tab öffnen", aber die unten markierte Lösung funktioniert einwandfrei, wenn ich Pentadactyl wieder einschaltete.

Hinweis (17.05.2015): pyrocrasty hat der Lösung eine Vimperator-Version hinzugefügt, die auch hervorragend funktioniert.

1
Ich habe eine [vimperator version] (https://gist.github.com/troyp/b4b4b75a0ef59a986e94) des gist hinzugefügt. Es funktioniert mit der Version von Vimperator, die ich hier habe. Lassen Sie mich wissen, wenn es Probleme gibt. (Ich verwende normalerweise keinen Vimperator.) pyrocrasty vor 9 Jahren 1

1 Antwort auf die Frage

1
pyrocrasty

UPDATE: voll funktionsfähige Lösung (siehe Antwort unten)


Integrierte Lösung: defekt?

Es gibt tatsächlich eine Taste Ctrl+, Tdie das nächste Mapping in einem neuen Tab ausführen soll. Für mich funktioniert das aber überhaupt nicht. Ich weiß nicht warum.

Es gibt auch den Ex-Befehl tab, der dasselbe für den nächsten Ex-Befehl ausführt. Es scheint jedoch nicht richtig mit Verlaufsbefehlen zu funktionieren. Es kopiert die Registerkarte, geht aber nicht zurück.


Zweistufige Lösung

Sie können dies erreichen, indem Sie zwei Befehle kombinieren:

  1. tabduplicate(oder tabdu) dupliziert die aktuelle Registerkarte, wobei der Verlauf erhalten bleibt.

    Sie können es an einen Schlüssel binden, indem Sie Ihrer .pentadactylrc-Datei eine solche Zeile hinzufügen:

     map -g user -ex C :tabduplicate 
  2. Hund Lsind hin und her, wie du erwähnt hast.

    Wenn Sie also die obige Beispielbindung verwenden, können Sie CHdie vorherige Seite in einer neuen Registerkarte öffnen.

Hinweis: Position der neuen Registerkarten.

Ein wichtiger Nachteil ist, dass diese Methode je nach Ihren Einstellungen die neue Registerkarte an einer anderen Stelle öffnet, als Sie mit der rechten Maustaste auf die Verlaufsschaltflächen klicken. Der Coben definierte Befehl öffnet die Registerkarte am Ende der Registerkartenleiste und nicht nach der aktuellen Registerkarte.

Wenn Sie möchten, dass die Registerkarten neben der aktuellen Registerkarte geöffnet werden, können Sie mit einer Erweiterung alle neuen Registerkarten nach der aktuellen Registerkarte öffnen . Tab Mix Plus ist eine beliebte Wahl.


Erster Versuch einer Single-Command-Lösung.

Ich habe Probleme beim Versuch, einen einzelnen Befehl zu erhalten, um eine Registerkarte zu duplizieren und dann vorwärts oder rückwärts zu navigieren. Es ist jedoch einfach, eine Registerkarte im Hintergrund zu duplizieren und dann auf der ursprünglichen Registerkarte vorwärts oder rückwärts zu navigieren.

Dies hat größtenteils den gleichen Effekt, mit der Ausnahme, dass die Positionen der beiden Registerkarten geändert werden: Sie gehen zurück in die Historie, in der Sie sich befinden, und die Registerkarte im ursprünglichen Zustand bleibt dort, wo neue Registerkarten geöffnet sind. Sie sollten dies wahrscheinlich nur in Betracht ziehen, wenn Sie eine Erweiterung verwenden, um alle neuen Registerkarten neben der aktuellen Registerkarte zu öffnen.

 map -g user -ex [t :execute "tabduplicate! | back" map -g user -ex ]t :execute "tabduplicate! | forward" 

Dann können Sie die vorherige Seite in einem neuen Tab mit öffnen [t(Sie können eine Einbuchstaben-Tastenkombination verwenden, wenn Sie eine haben).


UPDATE: Voll funktionsfähige Javascript-Lösung

Ich habe dies jetzt mit einem Javascript-Befehl ausgeführt. Das Problem bei meinen früheren naiven Versuchen bestand darin, dass sie vor der Verfügbarkeit der Geschichte versuchten, in die Geschichte zurückzukehren. Nach einiger Recherche habe ich das Problem mit einem Ereignis-Listener gelöst.

Der Code ist in diesem Gist enthalten (Update: Vimperator-Version ). Enthalten Sie es entweder direkt in Ihrer .pentadactylrc-Datei, oder speichern Sie es separat (vorzugsweise im .pentadactyl-Verzeichnis) und beziehen Sie es von .pentadactylrc. z.B.

:source "~/.pentadactyl/backt-forwardt.penta" 

Dann können Sie ghund verwenden gl, um dieselben Ergebnisse zu erzielen wie das mittlere Klicken auf die Vor- / Zurück-Schaltflächen.