zsh, ¿la flecha hacia arriba solo repite comandos únicos?

21

Estoy buscando una configuración que haga que cuando presione la flecha hacia arriba, zsh muestre los comandos que he editado recientemente. El problema es que solo quiero comandos únicos . Actualmente, si escribo echo "hello world"50 veces, tengo que presionar la flecha hacia arriba 50 veces para obtener el comando que usé antes de escribir el comando echo. Esto es molesto por decir lo menos.

¿Alguna idea sobre qué configuración necesito para habilitar / deshabilitar?

Lee Olayvar
fuente

Respuestas:

23

HIST_IGNORE_ALL_DUPSeliminará todas las coincidencias anteriores del comando, lo que puede ser confuso al usar el historial como un registro de lo que hizo más adelante.

Un ajuste más cercano a sus necesidades es probablemente HIST_IGNORE_DUPSla HIST_FIND_NO_DUPSopción o incluso la opción.

Ver man zshoptions | less -p History:

HIST_FIND_NO_DUPS: al buscar entradas del historial en el editor de líneas, no muestre duplicados de una línea encontrada anteriormente, incluso si los duplicados no son contiguos.

HIST_IGNORE_ALL_DUPS: si una nueva línea de comando que se agrega a la lista del historial duplica una anterior, el comando anterior se elimina de la lista (incluso si no es el evento anterior).

HIST_IGNORE_DUPS: no ingrese líneas de comando en la lista del historial si son duplicados del evento anterior.

peth
fuente
1
HIST_FIND_NO_DUPS es una mejor respuesta que la mía, creo.
Mikel
3

No puedo ver ninguna manera de hacer eso literalmente, pero si configura la HIST_IGNORE_ALL_DUPSopción, solo la versión más reciente de un comando se mantendrá en el historial, lo que le dará el mismo efecto.

Ver man zshoptionspara más detalles.

Mikel
fuente
¡Funciona genial! A menos que me falte algo, esto es exactamente lo que quería :)
Lee Olayvar