Derzeit habe ich Folgendes in meinem .zshrc:
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
Dies scheint jedoch nur mit dem Inhalt meiner aktuellen Eingabe übereinzustimmen, bevor ein Leerzeichen auftritt. Beispiel: sudo ls /
Stimmt mit jeder Zeile in meinem Verlauf überein, die mit beginnt sudo
, während ich möchte, dass nur Zeilen übereinstimmen, die mit meiner gesamten Eingabe übereinstimmen. (dh sudo ls /etc
würde passen, aber nicht sudo cat /var/log/messages
)
Was muss ich ändern, um das gewünschte Verhalten zu erzielen?
Hier ist meine gesamte .zshrc falls es relevant ist: https://gist.github.com/919566
zsh bietet diese Funktionalität mit
Ex.
Finden Sie den genauen Schlüsselcode mit
ctrl+vKEY
Ex.
ctrl+ vUP
ctrl+ vDOWN
ctrl+ vPageUp
ctrl+ vPageDown
etc.
quelle
$terminfo[kcuu1]
, <kbd> Runter </ kbd> ist$terminfo[kcud1]
.In diesem Blog-Beitrag aus dem Jahr 2013 werden einige Tastenkombinationen empfohlen, die mit allen Wörtern vor dem Cursor übereinstimmen.
(In einer früheren Version dieser Antwort hatte ich die
$terminfo
in einem Kommentar zum Blog-Post empfohlenen Werte verwendet. Einige terminfo-Werte sind hier aufgelistet .)quelle
/etc/zsh/zshrc
, wie z$key[Up]
.$terminfo
Sie die Terminalmodi ändern. Sehen Sie hier .$key[]
statt$terminfo[]
. Ich hoffe, das funktioniert gut für die Leser!Schauen Sie sich auch das Projekt zsh-history-substring-search an .
Es bietet, wonach Sie suchen, und kann sogar als oh-my-zsh-Plugin verwendet werden.
quelle