oh-my-zsh Verlaufsvervollständigung

oh-my-zsh Verlaufsvervollständigung

Ich bin vor kurzem auf zsh umgestiegen und verwenderobbyrussellsoh-my-zsh. Davor habe ich Bash mit vielen benutzerdefinierten Sachen verwendet und mir fehlt nur eine Sache, weil Zsh versucht, „zu schlau“ zu sein:

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

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

Antwort1

Die Lösung für mein Problem habe ich gefunden imZSH-Dokumentation. Oh-my-zsh scheint die und Keys auf etwas wie

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

Das führt zu dem genauen Verhalten, das ich oben beschrieben habe. Die ZSH-Dokumentation beschreibt das Verhalten history-search-backwardvon

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



Was ich stattdessen wollte, war die folgende Zuordnung, die 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 vorwärts nach einer Zeilebeginnend mit der aktuellen Zeile bis zum Cursor. Dadurch bleibt der Cursor an seiner ursprünglichen Position.

Wenn \e[Adie Pfeiltasten nach oben und unten nicht funktionieren, drücken Sie <ctrl-v><KEY (e.g., up arrow)>in einem anderen Terminal die Taste ^[OA. Dann können Sie dies anstelle von verwenden \e[A. Der Vorgang wird hier beschrieben:http://zshwiki.org/home/zle/bindkeys

Antwort2

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

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

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

Ich vermute, dass dieses Plugin zum Zeitpunkt der Fragestellung noch nicht existierte. Es war lediglich eine alternative Möglichkeit, dasselbe zu erreichen.

verwandte Informationen