Вы можете использовать плагин zsh-hist
для настройки хука precmd
, который удаляет последний элемент из истории, если он имел не -нулевой статус выхода:
source path/to/zsh-hist.plugin.zsh
delete-failed-history() {
(( ? )) &&
hist -s d -1
}
autoload -Uz add-zsh-hook
add-zsh-hook precmd delete-failed-history
Если вы хотите, чтобы он удалял только те команды, которые имеют статус выхода точно 1
, измените (( ? ))
на (( ? == 1 ))
.