Ich versuche, meine Z-Shell mit „setopt HIST_FIND_NO_DUPS“ so zu konfigurieren, dass keine doppelten Verlaufseinträge angezeigt werden.
HIST_FIND_NO_DUPS
When searching for history entries in the line editor, do not display duplicates of a line previously found, even if the duplicates are not contiguous.
Es funktioniert jedoch nicht wie erwartet. Wenn ich diesen Verlauf habe:
1 history
2 cd /bin
3 cd /bin
4 cd /bin
Ich gehe davon aus, dass ich zweimal die NACH-OBEN-Taste drücke (was auf „up-line-or-history“ eingestellt ist) und in meiner Eingabeaufforderung „history“ erhalte. Stattdessen erhalte ich jedoch „cd /bin“. Wenn ich viermal die NACH-OBEN-Taste drücke, wird der Befehl „history“ aufgerufen, was im Grunde das Standardverhalten ist, wenn HIST_FIND_NO_DUPS nicht eingestellt ist.
Ich weiß, dass ich andere Optionen verwenden könnte, die das Speichern doppelter Befehle von vornherein verhindern würden (wie etwa HIST_IGNORE_ALL_DUPS), aber das ist nicht das Verhalten, das ich möchte.
Antwort1
HIST_FIND_NO_DUPS
WannSucheBei Verlaufseinträgen im Zeileneditor werden keine Duplikate einer zuvor gefundenen Zeile angezeigt, auch wenn die Duplikate nicht zusammenhängend sind.
Ich denke, es funktioniert wie vorgesehen und setopt HIST_FIND_NO_DUPS
sollte die Ergebnisse nicht beeinflussen, wenn Sie einfach den Pfeil nach oben drücken. Es beeinflusst die angezeigten Suchergebnisse, wenn Sie drücken Ctrl-r
. Angenommen, Sie haben den folgenden Verlauf:
mvn clean package
mvn clean package
mvn clean package -DSkipTests
mvn clean package
Wenn Sie jetzt drücken Ctrl-r
und tippen , mvn
erhalten Sie mvn clean package
einen Vorschlag. Wenn Sie Ctrl-r
erneut drücken, erhalten Sie mvn clean package -DSkipTests
. Ctrl-r
Das dritte Drücken führt nicht zu einem neuen Vorschlag, da Duplikate von nicht zugelassen werden HIST_FIND_NO_DUPS
. Ohne HIST_FIND_NO_DUPS
würde Ihnen die Shell mvn clean package
erneut anzeigen.