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?


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

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


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.