Zsh: haz que la flecha hacia arriba salte comandos idénticos


10

En la mayoría de los shells de Unix, la tecla de flecha hacia arriba reemplaza el comando que está editando el comando anterior en el historial. La historia se puede ver usando el comando history.

se puede presionar más de una vez para ascender en la historia.

Mi pregunta es:

¿Cómo puedo configurar mi shell para que omita todos los comandos idénticos al actual?

De hecho, a menudo entro muchos makeen una fila. Cuando quiero ingresar nuevamente (o modificar ligeramente) un comando anterior, tengo que presionar muchas veces solo para omitir todos los makecomandos.

Sé que está lejos de ser el único consejo que aumenta la productividad de la carcasa.

prima:

  • dar una configuración que funcione para el shell Bash.
  • preservar el historial (puede ser útil saber que escribió un comando muchas veces seguidas)

Respuestas:


15

Para zsh ponga esto en su configuración:

setopt histignoredups

Lo que hace, ignorará las entradas duplicadas del historial durante la búsqueda.

La configuración equivalente para bash es

HISTCONTROL=$HISTCONTROL:ignoredups

1
gracias, setopt histignoredupshace el trabajo pero también suprime duplicados de la historia
Gabriel Devillers

Sí exactamente. En la mayoría de los casos, esto es lo que quieres. Cuando haya visto una sugerencia y no la desee, no desea que se la sugiera nuevamente. No elimina duplicados del historial, por cierto.
Martin Sugioarto

Tienes razón, pero quise decir: futuros duplicados no se agregarán al historial.
Gabriel Devillers

Se agregan, de lo contrario, la otra opción llamada histexpiredupsfirstque también uso no tendría sentido. Hace que los duplicados caduquen primero antes de mirar la edad. (Estoy hablando de zsh aquí)
Martin Sugioarto
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.