without ohmyzsh mac chsh awesome zsh

ohmyzsh - Cómo eliminar una entrada del historial en ZSH



zsh themes linux (3)

Digamos que ejecuté un comando usando un zsh

echo "mysecret" > file

Puedo imprimir fácilmente el historial incluyendo los números de entrada usando el comando fc -l :

1 echo "mysecret" >| file

Pero, ¿cómo puedo eliminar fácilmente una entrada del historial?

No puedo encontrar un párrafo correspondiente en man zshbuiltins .


* BSD / Darwin:

LC_ALL=C sed -i '''' ''/porn/d'' $HISTFILE

Linux (GNU sed):

LC_ALL=C sed -i ''/porn/d'' $HISTFILE

Esto eliminará todas las líneas que coincidan con "pornografía" de su $ HISTFILE.

Con setopt HIST_IGNORE_SPACE , puede anteponer el comando anterior con un carácter de espacio para evitar que se escriba en $ HISTFILE.

Como Tim señaló en su comentario a continuación , el prefijo LC_ALL = C evita el error de ''secuencia de bytes ilegal''.


No sé si hay algún método elegante para hacer esto, pero en situaciones similares he cerrado sesión (permitiendo que zsh vacíe su búfer y escriba mi historial en el archivo), luego inicie sesión y finalmente ~/.zsh_history manualmente ~/.zsh_history , eliminando la línea "peligrosa".