2016-07-24 12 views
0

Ich habeHISTIGNORE arbeiten nicht in zsh

hinzugefügt
export HISTIGNORE="ls:cd:pwd:exit:cd .." 

meiner .zshrc Datei.

Gelöschte .zsh_history und neugestarteter Terminal, aber diese Befehle werden weiterhin ignoriert.

enter image description here

Antwort

5

Die zsh Schale verwendet nicht die HISTIGNORE Umgebungsvariable. Stattdessen hat es eine HISTORY_IGNORE Umgebungsvariable.

Vom zshparam manual:

HISTORY_IGNORE

Wenn gesetzt, als ein Muster an der Zeit behandelt wird, History-Dateien sind geschrieben. Jeder mögliche Verlaufseintrag, der dem Muster entspricht, wird übersprungen. Wenn zum Beispiel der Wert fc * lautet, werden Befehle, die den interaktiven Verlaufs-Editor aufrufen, niemals in die Verlaufsdatei geschrieben .

Beachten Sie, dass HISTORY_IGNORE ein einzelnes Muster definiert: Alternativen verwenden Sie die (first|second|...) Syntax.

Also in Ihrem Fall würden Sie ähnlich

HISTORY_IGNORE="(ls|cd|pwd|exit|cd ..)" 

oder etwas tun wollen.

Beachten Sie, dass dies nur den Verlauf betrifft, der in die Verlaufsdatei geschrieben wurde, nicht den Verlauf in der gerade aktiven Shell-Sitzung, soweit ich das sehen kann.

+0

Scheint nicht immer noch zu arbeiten. Ich benutze .oh-my-zsh, weiß nicht, ob das diese Variablen ändert. Ich folgte diesen Jungs Beispiele https://github.com/bradp/dotfiles/blob/master/sourced/exports weshalb ich dachte, es würde so funktionieren. Aber ich bin mir nicht mehr sicher. – tgreen

+0

Nun, setzen Sie 'SAVEHIST' auf eine positive Zahl, stellen Sie sicher, dass' HISTFILE' auf den Namen einer History-Datei gesetzt ist, und die Einstellung 'HISTORY_IGNORE' auf' "(cd | ls)" 'funktioniert definitiv wie von der' Zsh' Handbuch auf jeden Fall. – Kusalananda

+0

Danke Kusalananda. Ich glaube, Du hast recht. Ich dachte und hoffte, dass dies diese Befehle daran hindern würde, gezeigt zu werden, wenn ich 'Geschichte' lief oder wenn ich die Taste nach oben drückte. Sie sind nicht in der History-Datei obwohl ich denke, es funktioniert. – tgreen