Je cherche l'équivalent zsh de la commande bash history -c
, en d'autres termes, effacez l'historique de la session en cours. Dans zsh history -c
renvoie 1 avec un message d'erreur history: bad option: -c
.
Juste pour clarifier, je ne cherche pas un moyen de supprimer le contenu de $HISTFILE
, Je veux juste une commande pour réinitialiser l'historique au même état qu'il était lorsque j'ai ouvert le terminal. Suppression du contenu de $HISTFILE
fait le contraire de ce que je veux: il supprime l'historique que je veux conserver et préserve l'historique que je veux supprimer (puisque l'historique de la session en cours y serait ajouté, que son contenu ait été préalablement effacé ou non).
Il existe une solution de contournement que j'utilise pour l'instant, mais elle est évidemment loin d'être idéale: dans la session en cours, j'ai défini HISTFILE=/dev/null
et fermez et rouvrez le terminal. Cela provoque que l'historique de la session fermée ne soit pas ajouté à $HISTFILE
. Cependant, j'aimerais vraiment quelque chose comme history -c
depuis bash, ce qui est beaucoup plus élégant que de devoir fermer et redémarrer le terminal.
Pour obtenir un historique vide, définissez temporairement HISTSIZE
sur zéro.
function erase_history { local HISTSIZE=0; }
erase_history
Si vous souhaitez effacer le nouvel historique de cette instance du Shell mais conserver l'ancien historique chargé initialement, videz l'historique comme ci-dessus puis rechargez l'historique enregistré fc -R
ensuite.
Si vous ne voulez pas que le erase_history
appel à enregistrer dans l'historique, vous pouvez le filtrer dans le zshaddhistory
hook .
function zshaddhistory_erase_history {
[[ $1 != [[:space:]]#erase_history[[:space:]]# ]]
}
zshaddhistory_functions+=(zshaddhistory_erase_history)
Suppression d'un élément historique spécifique (history -d NUM
in bash) est une autre affaire. Je ne pense pas qu'il y ait d'autre moyen que:
fc -AI
pour ajouter au fichier historique, ou fc -WI
pour remplacer le fichier d'historique, selon vos préférences de partage d'historique.$HISTFILE
).fc -R
.