Wechseln der Registerkarten im Mac-Terminal mit Strg + PageUp / PageDown

10

Ich habe vor kurzem angefangen, einen Mac (mit Lion) zu verwenden, und es gibt eine Inkonsistenz, die mich beschäftigt.

In Chrome und MVim kann ich mit Ctrl+ PageUp/ zwischen Registerkarten wechseln PageDown. Aber im Terminal muss ich Cmd+ Shift+ Left/ verwenden Right.

Ich würde letzteres gerne in Ctrl+ PageUp/ ändern PageDown, aber ich kann das scheinbar nicht tun.

Wenn ich in den Systemeinstellungen → Tastatur → Tastaturkürzel → Anwendungsverknüpfungen eine Verknüpfung zu Terminals "Registerkarte" Nächste auswählen "hinzufüge, kann ich so ziemlich alles festlegen, solange es keine PageUp / PageDown-Taste enthält.

Warum gibt es eine solche Einschränkung und kann ich sie umgehen?

foxcub
quelle

Antworten:

7

defaults write -g NSUserKeyEquivalents -dict-add "Select Previous Tab" "^\UF72C" "Previous Tab" "^\UF72C" "Previous Workspace" "^\UF72C" "Select Next Tab" "^\UF72D" "Next Tab" "^\UF72D" "Next Workspace" "^\UF72D"

-gändert ~/Library/Preferences/.GlobalPreferences.plist. Sie müssen Apps erneut öffnen, um Änderungen zu übernehmen, und die manuell hinzugefügten Verknüpfungen werden in den Anwendungsverknüpfungen nicht angezeigt .

Lri
quelle
Wie würde ich dies rückgängig machen, bevor ich es versuche? Gibt es so etwas wie -dict-remove? (Außerdem würde ich gerne wissen, wie Sie diese Lösung gefunden haben.)
Foxcub
1
defaults delete -g NSUserKeyEquivalents. Sie können die Datei auch manuell bearbeiten mit : f=~/Library/Preferences/.GlobalPreferences.plist; plutil -convert xml1 $f; open $f. Ich habe es von keinem bestimmten Ort aus herausgefunden.
Lri
Ich denke, die Schlüsselcodes sind falsch. Es wird versucht, alles auf Strg + PageUp einzustellen. Wo kann ich diese Codes nachschlagen?
Foxcub
Entschuldigung, es wurde behoben. lri.me/chars
Lri
Akzeptiere diese Antwort, da es ein direkterer Ansatz für meine Frage ist. (Entschuldigung, dass ich es nicht verbessern kann - nicht genug Ruf.)
Foxcub
3

Sie könnten iTerm verwenden, da dies ein viel flexibleres Verknüpfungssystem hat, aber Sie werden unweigerlich auf eine andere Anwendung stoßen, die nicht so funktioniert, wie Sie es möchten.

Ich denke, Sie werden feststellen, dass Command+ shift+ [und Command+ shift+ ]die einzigen konsistenten Verknüpfungen zum Wechseln zwischen Registerkarten sind und es besser ist, einfach Ihre Gewohnheiten zu ändern.

Jared O'Connor
quelle
Gibt es eine Möglichkeit, die Chrome-Verknüpfung zum Wechseln der Registerkarten zu ändern? (Ich glaube, ich weiß, wie es für MVim geht.) Ich bin in Ordnung, meine Gewohnheiten zu ändern, aber ich brauche Beständigkeit.
Foxcub
Chrome verwendet diese Verknüpfungen bereits, ebenso wie MacVim und alle anderen von mir verwendeten Anwendungen mit Ausnahme von Adium.
Jared O'Connor
Shift-Command-Left / Right Arrow wechselt auch die Registerkarten im Terminal. Ab Mac OS X Lion 10.7 wechselt die Geste "Wischen mit drei Fingern" die Registerkarten (sofern Sie nicht die Systemeinstellung für die Verwendung des Wischens mit drei Fingern für etwas anderes festgelegt haben).
Chris Seite
Beachten Sie, dass für Personen mit (vielen) nicht englischen Tastaturlayouts Verknüpfungen mit Tasten wie [] {} schwer einzugeben sind. Aus diesem Grund bevorzuge ich persönlich Verknüpfungen, die Tasten verwenden, die nicht vom Tastaturlayout abhängen. Wie PageUp und PageDown.
tml
3

Die Antwort von Lri funktioniert (und FWIW, ich habe sie positiv bewertet), verfolgt jedoch einen Schrotflintenansatz: Sie erstellt globale Einstellungen (anstelle von terminalspezifischen Einstellungen), und einige der von ihr festgelegten Einstellungen haben überhaupt keine Auswirkungen auf Terminal. - Ich weiß eigentlich nicht, wofür sie sind.

Wenn Sie wie ich ein bisschen paranoid sind und einen "chirurgischeren" Ansatz bevorzugen, finden Sie hier eine modifizierte Version von Lris Antwort:

defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Select Previous Tab"    "^\UF72C"
defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Select Next Tab"        "^\UF72D"

Dies fügt nur zwei Tastenbelegungen, ^PageUpund ^PageDown, und fügt sie nur zum Terminal.

Laurence Gonsalves
quelle
Irgendeine Idee, ob dies noch funktionieren sollte (in El Capitan)? Es funktioniert leider nicht für mich.
Chris
@ Chris Sieht aus wie Sie richtig sind. Das scheint nicht mehr zu funktionieren! Zum einen haben die Menüelemente ihre Namen geändert (sie sagen jetzt "Anzeigen" anstelle von "Auswählen"), aber selbst wenn diese Einstellung korrigiert wird, scheint dies keine Auswirkung zu haben. Ich kann NSUserKeyEquivalents tatsächlich nicht dazu bringen Arbeit für Terminal überhaupt in El Capitan. Ugh
Laurence Gonsalves
1

Basierend auf dieser Antwort ist hier eine Version davon für macOS High Sierra:

defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Show Next Tab" "^\UF72D"
defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Show Previous Tab" "^\UF72C"
Danielle Madeley
quelle
Bestätigt, dass dies bei Mojave funktioniert, obwohl diese Antwort ein Duplikat von Laurence Gonsalves 'Antwort zu sein scheint . PSA: Denken Sie daran, das Terminal nach dem Ausführen neu zu starten.
RACKGNOME