En Bash, je sais que mettre un espace avant une commande l'empêche d'être conservée dans l'historique, quel est l'équivalent pour le zshell ?
Réponses
Trop de publicités?Utilisez l'option HIST_IGNORE_SPACE.
setopt HIST_IGNORE_SPACE
homme zshoptions
HIST_IGNORE_SPACE
Supprime les lignes de commande de la liste historique lorsque le premier caractère de la ligne est un espace ou lorsque l'un des alias étendus contient un espace en début de ligne. Notez que la commande reste dans l'historique interne jusqu'à ce que la commande suivante soit saisie avant de disparaître, ce qui vous permet de réutiliser ou de modifier brièvement la ligne. Si vous souhaitez la faire disparaître immédiatement sans entrer d'autre commande, tapez un espace et appuyez sur retour.
Si vous souhaitez exercer un contrôle plus granulaire sur ce qui est ajouté à l'historique ZSH, vous pouvez définir le paramètre zshaddhistory
fonction dans .zshrc
. La définition suivante utilise une expression rationnelle pour définir un motif à ignorer :
function zshaddhistory() {
emulate -L zsh
if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
print -sr -- "${1%%$'\n'}"
fc -p
else
return 1
fi
}
Notez que le comportement de man zshopts
en HIST_IGNORE_SPACE
est toujours présent :
Notez que la commande reste dans l'historique interne jusqu'à ce que la commande suivante soit saisie avant de disparaître, ce qui vous permet de réutiliser ou de modifier brièvement la ligne.
Pour le tester, il faudrait donc que vous frappiez un [Enter]
. Cette opération supprime la commande à la fois de la sortie de history
ainsi que l'historique des flèches.