oh-my-zsh Geschichte Abschluss

45

Ich habe kürzlich zu zsh gewechselt, indem ich robbyrussell's verwendet habeoh-my-zsh . Vorher habe ich bash mit vielen benutzerdefinierten Sachen benutzt und mir fehlt nur eine Sache, weil zsh versucht, "zu schlau" zu sein:

Wenn ich tippe git commitund dann zsh alle letzten gitBefehle durchläuft . Was ich aber wirklich will, ist, alle Befehle durchzugehen, die mit git commit(nicht nur git) beginnen.

Wie kann ich dieses Verhalten in (oh-my-) zsh erreichen?

Patrick Oscity
quelle
Seltsam, ich benutze OMZSH und es verhält sich so. Hast du 'plugins = (git)' in deinem zshrc?
Chris2048
Ja, das tue ich, aber es ist nicht nur für Git, alle Befehle werden auf diese Weise ausgeführt.
Patrick Oscity
Siehe Ubuntu superuser.com/a/1490192/131522
mixel

Antworten:

66

Ich habe die Lösung für mein Problem in der ZSH-Dokumentation gefunden . Oh-mein-zsh scheint die zur Karte und Schlüssel zu so etwas wie

bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward

Was genau das Verhalten ergibt, das ich oben beschrieben habe. Die ZSH-Dokumentation beschreibt das Verhalten von history-search-backwardals

Suchen Sie im Verlauf rückwärts nach einer Zeile, die mit dem ersten Wort im Puffer beginnt .



Was ich stattdessen wollte, war das folgende Mapping, das ich in mein eingefügt habe ~/.zshrc:

bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward

Das Verhalten von history-beginning-search-backwardist wie folgt:

Suchen Sie im Verlauf nach einer Zeile, die mit der aktuellen Zeile bis zum Cursor beginnt . Dadurch bleibt der Cursor an seiner ursprünglichen Position.

Wenn \e[Adie Aufwärts- oder Abwärtspfeile nicht funktionieren, drücken Sie <ctrl-v><KEY (e.g., up arrow)>ein anderes Terminal, das anzeigt ^[OA. Dann können Sie dies anstelle von verwenden \e[A. Der Prozess wird hier beschrieben: http://zshwiki.org/home/zle/bindkeys

Patrick Oscity
quelle
1
Danke danke danke!! Ich war verrückt nach diesem
Mhenrixon
Für Nicht-OMZ-Benutzer wie mich: Tut bindkeyaufgrund eines Fehlers nichts, also hat das OMZ-Team es mit diesem Plugin gepatcht . Laden Sie es einfach herunter und geben Sie es als Quelle ein bindkey.
Franklin Yu
@FranklinYu merkst doch, dass das total bs ist, oder? Dieses Plugin macht mit bindkey nichts anderes als USE it, um einige Ereignisse abzufangen.
Nonchip
Wow, das ist perfekt!
Eichhörnchen
12

Ich wollte dasselbe Verhalten für zsh mit oh-my-zshinstalliertem und gefundenem Plugin history-substring-search.

Ich habe dasselbe Verhalten wie oben beschrieben erreicht, indem ich das Plugin zu meinem hinzugefügt habe ~/.zshrc:

plugins=(git brew npm history-substring-search)

Ich denke, dieses Plugin gab es nicht, als diese Frage aufgeworfen wurde. Nur eine alternative Möglichkeit, dasselbe zu erreichen.

dcusan
quelle