Ich benutze es zsh
seit einiger Zeit gerne und bin sehr zufrieden mit meinen Verlaufseinstellungen:
# Write to history immediately
setopt inc_append_history
# History shared among terminals
setopt share_history
# Save extended info in history
setopt extended_history
# Ignore duplicates
setopt hist_ignoredups
Es kommt jedoch häufig vor, dass ich bestimmte Befehle in bestimmten Verzeichnissen verwenden muss. Wenn ich zum Beispiel ~/my_project
drin bin, rufe ich normalerweise an make target1 && ./run1
, aber wenn ich drin ~/second_project
bin, brauche ich normalerweise make target2 && cat foobar | ./run2
.
Das heißt: verschiedene Verzeichnisse, aber ähnliche Befehle.
Also tippe ich normalerweise cd ~/my_project
und tippe make
und suche dann rückwärts in der Geschichte, bis ich finde, was ich brauche. Aber wenn es passiert, dass ich gearbeitet habe second_project
, finde ich beim Durchsuchen des Verlaufs einige Befehle, die ich nicht benötige.
Meine Frage: Gibt es ein Plugin / einstellung / etwas für zsh, sodass bei der Suche im Verlauf zuerst die im aktuellen Verzeichnis aufgerufenen Befehle angezeigt werden?
Im Idealfall wird jeder zweite übereinstimmende Verlaufsbefehl nach diesen angezeigt, wobei optional eine maximale Anzahl von Prioritätselementen angegeben wird.
Ich würde versuchen, so etwas selbst zu schreiben, aber ich weiß immer noch nicht, wie man benutzerdefinierte zsh-Plugins schreibt, wie man mit Verlauf umgeht und so weiter.