![Wie kann ich in zsh eine Zeile nach oben scrollen?](https://rvso.com/image/1475787/Wie%20kann%20ich%20in%20zsh%20eine%20Zeile%20nach%20oben%20scrollen%3F.png)
Ich verwende iTerm2 mit Bash und scrolle durch den Verlaufspuffer eine Zeile nach oben, indem ich eingebe Shift+Up
. Wenn ich zu meiner ZSH-Shell wechsle, wird nur eingegeben 2A
. Wie kann ich in ZSH nur mit meiner Tastatur eine Zeile nach oben scrollen, vorzugsweise mit Shift+Up
?
Antwort1
Ich denke, es hängt vom Terminalemulator ab.
Zum Beispiel mitzsh, in der Konsole funktioniert es Shift+ Up.
In xterm nicht, aber es funktioniert Shift+ PgUp.
Es scheint, dass es mit iTerm2 standardmäßig funktionieren sollte:
- ⌘ ↑eine Zeile nach oben
- ⌘ ↓eine Zeile nach unten verschieben
Antwort2
Die von Ihnen gesuchte Funktion wird durch die Widgets up-history
und up-line-or-history
( down-history
und down-line-or-history
zum Herunterscrollen) bereitgestellt.
Standardmäßig up-line-or-history
sollte es an gebunden sein, Upaber Sie können es mit an (fast) jede andere Tastenfolge binden bindkey
. In Terminals generieren spezielle Tasten (Tasten, die kein druckbares Zeichen erzeugen) eine Tastenfolge, die dann von der Shell interpretiert wird – oder auch nicht, wie Ihr Beispiel für 2A
for Shift+ Upzeigt. Diese Tastenfolgen können sich auch zwischen Terminalemulatoren unterscheiden. Um die richtige Tastenfolge für Ihr Terminal zu erhalten, öffnen Sie es, drücken Sie dann Ctrl+ vund anschließend die gewünschte Tastenkombination ( Shift+ Up). Auf meinem Terminal (rxvt-unicode) erhalte ich ^[[a
. Sie können die Folge dann an das up-history
Widged binden:
bindkey <in-string> up-history
Ersetzen Sie es einfach <in-string>
durch die gefundene Sequenz. In meinem Fall
bindkey '^[[a' up-history
Anmerkung 1:Sie müssen die Sequenz höchstwahrscheinlich in Anführungszeichen setzen, da sie wahrscheinlich Zeichen enthält, die zsh
anders interpretiert werden.
Anmerkung 2:Einige Tastenkombinationen können identische Tastenfolgen erzeugen. Beispielsweise unterscheiden sich Buchstaben, die mit Ctrl+ kombiniert werden Shift, normalerweise nicht von denselben Buchstaben, die nur mit kombiniert werden Ctrl. Sowohl Ctrl+ Shift+ aals auch Ctrl+ aerzeugen normalerweise ^A
. In einigen Terminalemulatoren werden Ctrl+ Shift-Kombinationen sogar für Tastenkombinationen des Terminals selbst verwendet und sind in der Shell nicht verfügbar.