zsh ignora HIST_FIND_NO_DUPS

zsh ignora HIST_FIND_NO_DUPS

Estoy intentando configurar mi shell Z para que no muestre entradas duplicadas del historial con 'setopt HIST_FIND_NO_DUPS'.

HIST_FIND_NO_DUPS
When searching for history entries in the line editor, do not display duplicates of a line previously found, even if the duplicates are not contiguous.

Sin embargo, no funciona de la forma esperada. Cuando tengo este historial:

    1  history
    2  cd /bin
    3  cd /bin
    4  cd /bin

Espero presionar ARRIBA dos veces (que está configurado en "línea ascendente o historial") y obtener "historial" en mi mensaje. Sin embargo, en lugar de eso aparece 'cd /bin'. Si presiono ARRIBA cuatro veces, va al comando 'historial', que es básicamente el comportamiento predeterminado sin HIST_FIND_NO_DUPS configurado.

Sé que podría usar otras opciones que evitarían que se guarden comandos duplicados en primer lugar (como HIST_IGNORE_ALL_DUPS), pero ese no es el comportamiento que quiero.

Respuesta1

HIST_FIND_NO_DUPS

Cuandobuscandopara las 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.

Creo que funciona según lo diseñado y setopt HIST_FIND_NO_DUPSno debería afectar los resultados cuando simplemente presionas la flecha hacia arriba. Afecta los resultados de búsqueda que se muestran al presionar Ctrl-r. Supongamos que tiene el siguiente historial:

mvn clean package
mvn clean package
mvn clean package -DSkipTests
mvn clean package

Ahora, si presiona Ctrl-ry escribe, mvnrecibirá mvn clean packageuna sugerencia. Cuando presiones Ctrl-rnuevamente, obtendrás mvn clean package -DSkipTests. Al presionar Ctrl-rpor tercera vez no se generará una nueva sugerencia, porque HIST_FIND_NO_DUPS. Sin HIST_FIND_NO_DUPSel caparazón te lo mostraría mvn clean packagede nuevo.

información relacionada