Cette fonction supprimera n'importe quelle ligne de votre historique Zsh, sans poser de questions :
# Accepts one history line number as argument.
# Alternatively, you can do `dc -1` to remove the last line.
dc () {
# Prevent the specified history line from being saved.
local HISTORY_IGNORE="${(b)$(fc -ln $1 $1)}"
# Write out the history to file, excluding lines that match `$HISTORY_IGNORE`.
fc -W
# Dispose of the current history and read the new history from file.
fc -p $HISTFILE $HISTSIZE $SAVEHIST
# TA-DA!
print "Deleted '$HISTORY_IGNORE' from history."
}
Si vous voulez en plus empêcher tous les dc
pour éviter que les commandes ne soient écrites dans l'historique, ajoutez ce qui suit dans votre fichier ~/.zshrc
fichier :
zshaddhistory() {
[[ $1 != 'dc '* ]]
}
Mise à jour
J'ai maintenant publié une solution plus complète sous forme de plugin : https://github.com/marlonrichert/zsh-hist
2 votes
Qu'est-ce que ça fait sur StackOverflow plutôt que sur SuperUser ?
0 votes
Duplicata de stackoverflow.com/questions/22771958/