/ / ¿Cómo puedo hacer que zsh excluya ciertos comandos del historial? - zsh, zshrc

¿Cómo puedo hacer que zsh excluya ciertos comandos del historial? - zsh, zshrc

Como, digamos, aquellos que incluyen la palabra "producción"?

Respuestas

4 para la respuesta № 1
function zshaddhistory() {
emulate -L zsh
if [[ $1 != *"production"* ]] ; then
print -sr -- "${1%%$"n"}"
fc -p
else
return 1
fi
}

Coloque lo anterior en un archivo que se obtendrá cuando comience el shell interactivo (para .zshrc o a un archivo que proviene de .zshrc como yo lo hago).

Forma alternativa (adición implícita a la historia):

function zshaddhistory() {
emulate -L zsh
if [[ $1 = *"production"* ]] ; then
return 1
fi
}

. Nota:

print -sr -- "${1%%$"n"}"

agrega explícitamente el artículo al historial. Pero lo mismo implícitamente hace zsh si zshaddhistory regresa con cero código de salida, así que sin fc -p y con setopt nohistignoredups nohistignorealldups (que es el estado predeterminado) verá duplicados innecesarios en el historial.

emulate -L zsh está aquí para asegurarse de que las configuraciones de emulación no entren y cambien la interpretación del cuerpo de la función. Pongo esta línea al comienzo de cada función que defino en la configuración de zsh.