In zsh weiß ich, dass ich mit Ctrl+ den Verlauf durchsuchen kann r. Oft fange ich jedoch an, einen Befehl direkt an der Eingabeaufforderung einzugeben, und stelle dann fest, dass ich den Verlauf durchsuchen sollte. Wenn ich Ctrl+ rdrücke, wird eine leere Verlaufssuchaufforderung wie folgt angezeigt:
Beachten Sie, dass sich an meiner Eingabeaufforderung Text befindet, nicht jedoch an der Eingabeaufforderung für die Verlaufssuche. Wie starte ich die Verlaufssuche mit dem Text, der bereits in der Eingabeaufforderung enthalten ist?
quelle
Eine weitere nützliche Option ist
history | grep
Vergeben Sie einen Alias, z
Dann können Sie
hg whatever
eingeben, um nach Befehlen zu suchen, die Sie verwendet haben, zIch habe diesen Alias in meine Punktedateien eingefügt.
quelle
hg
erinnert mich an ... Oh ja, Mercurial!Wenn Sie oh-my-zsh verwenden , ergänzen Sie
history-substring-search
dieplugins=(...)
Zeile.Dann füge hinzu
Irgendwo unter der Zeile, die lautete
source $ZSH/oh-my-zsh.sh
. Speichern und starten Sie ein neues Terminal oder führen Siesource ~/.zshrc
das aktuelle Terminal aus.Hinweis:
^[[A
Ist die Escape-Sequenz für den Aufwärtspfeil in dem von mir verwendeten Terminal (Kitty) und vielen anderen. Um das Terminal Ihrer Wahl einzuchecken, geben Sie einshowkey -a
und drücken Sie die Taste, für die Sie die Escape-Sequenz suchen möchten.quelle
brew install zsh-history-substring-search
die Repo-Readme-Datei auf Anweisungen überprüft. Ich werde einfach weitermachen und eine Antwort erstellen. Ich bin wirklich zufrieden mit dem Ergebnis.Möglicherweise möchten Sie das Skript unter https://github.com/zsh-users/zsh-history-substring-search verwenden
Hier können Sie einen beliebigen Teil eines zuvor eingegebenen Befehls eingeben Upund die DownTasten und drücken, um durch die entsprechenden Befehle zu blättern.
quelle
Ich würde mit sehr empfehlen
"$terminfo[kcuu1]"
oder"$key[Up]"
eher als hartcodierte Sachen wie"^[[A"
die möglicherweise nicht auf ein bestimmtes System arbeiten.Schauen Sie sich
/etc/zsh/zshrc
für weitere Tasten. So sieht es auf meinem System aus. Ich denke, dieterminfo
Schlüssel sind eher definiert.quelle
Was ist mit
zsh-autosuggestions
?Die Sache ist, dass für jeden Befehl, den Sie dieses Plugin eingeben, einige Vorschläge angezeigt werden, die akzeptiert werden könnten oder nicht. Probieren Sie es aus und geben Sie uns ein Feedback.
Ohne Plugins können wir drücken Ctrlr, um eine umgekehrte Suche im Verlauf durchzuführen. Sobald Sie mit der Eingabe beginnen, werden die übereinstimmenden Befehle als Vorschläge angezeigt.
quelle
Ich benutze das vi-mode Plugin. Und dann habe ich in meinem ~ / .zshrc die folgenden Bindungen:
Das ermöglicht mir, die
^P
und^N
als normale Rückwärts- und Vorwärtssuche zu verwenden, wenn ich keinen Text eingebe, und als gefilterte Suche, wenn ich es tue.quelle
Ich stimme cheflo zu, dass die Suche nach "Teilzeichenfolgen" nützlicher ist. Da ich dort keinen Kommentar abgeben kann, habe ich eine neue Antwort gestartet. Ich benutze oh-my-zsh und füge "history-substring-search" zu den plugins = (...) von ~ / .zshrc hinzu. Dann geben Sie ~ / .zshrc ein. Müssen Sie nichts mehr hinzufügen. Verwenden Sie "bindkey", um Folgendes zu überprüfen:
Später geben Sie "bis" und den Aufwärtspfeil ein, "Verlauf" wird angezeigt und "bis" hervorgehoben (wenn Sie zuvor den Befehl "Verlauf" verwendet haben).
quelle
Sie könnten stattdessen zaw verwenden , das Ihre Suche vollständig durch eine viel bessere Super-Suche mit mehreren Suchbegriffen ersetzt und auch Ihr Problem behebt - der Suchverlauf ist nur eines der Dinge, die zaw durchsuchen kann.
Kleines Intro / Diskussion hier
quelle
Da ich oh-my-zsh verwende und die Teilzeichenfolgenlösung von joelostblom, James, verwende, ändere ich die .zshrc folgendermaßen: , dann ändern Sie den Code um ihn herum.)
quelle
bindkey -v
bricht Strg-A, Strg-E. Höchstwahrscheinlich alle Strg-Befehle.Non-Oh-My-Zsh-Antwort
Dies funktionierte für mich (unter macOS), um den Teilstring-Verlauf über den Aufwärts- / Abwärtspfeil leicht zugänglich zu machen. Die Schlüsselbindung liegt bei Ihnen.
Der Teilstringsuchverlauf ist besser, als nur auf Befehle zuzugreifen, die mit einer Zeichenfolge beginnen. Dies entspricht in den meisten Fällen eher der Tastenkombination Strg-R (Strg-R), wenn keine Globs oder Regex-Übereinstimmungen vorliegen.
Ausgehend von den Anweisungen unter zsh-users / zsh-history-substring-search
Nun viel Spaß damit.
quelle