zsh equivalente de bash show-all-if-ambiguous?

8

En bash, si presiona tab cuando hay varias finalizaciones posibles, obtiene una lista de coincidencias que sigue reimprimiendo si presiona repetidamente tab. En tcsh, configurar autocompletar como mejorado también logra esto.

En zsh, obtienes la lista de coincidencias, pero en la segunda, tercera pestaña, presiona, comienza a recorrer las coincidencias. ¿Hay alguna manera de hacer que zsh haga el equivalente del show-all-if-ambiguous de bash sin el ciclismo?

No busco el ingenioso pero inútil "¿por qué presionarías la pestaña varias veces si se muestra después del primero?". Si hubiera podido ajustar mis hábitos, ya lo habría hecho.

Sridhar Sarnobat
fuente

Respuestas:

5

Zsh tiene muchas opciones relacionadas con la finalización (ver más man zshoptionsabajo Completion). Creo que buscas setopt no_auto_menuy quizás setopt bash_auto_listtambién.

Gilles 'SO- deja de ser malvado'
fuente
Lo siento, formulé mal mi pregunta. Quiero saber cómo deshabilitar el ciclo de finalización de tabulación. Creo que comenzaré una nueva pregunta.
3
@ user714112: setopt no_auto_menudeshabilita el ciclo de finalización de pestañas: si presiona Taby el prefijo actual es ambiguo, verá un menú, y eso es todo, la línea de comando no cambiará.
Gilles 'SO- deja de ser malvado'
Gracias, tienes razon. No estoy seguro de por qué no vi eso antes. ¿Es posible hacer que vuelva a mostrar la lista en 2nd, 3rd, 4th TAB en lugar de nada? El instinto humano es pensar que su teclado no funciona si no sucede nada al presionar las teclas de la segunda, tercera y cuarta pestaña.
Sridhar Sarnobat
@ user7000: Nuevamente, vuelve a mostrar la lista cada vez que presiona Tab. Si borro la pantalla del menú del emulador de terminal o creo un archivo, luego presione Tabnuevamente, zsh vuelve a mostrar la lista y muestra el nuevo archivo. (Sólo probado con zsh 4.3.4, y no creo que el comportamiento ha cambiado en mucho tiempo.)
Gilles 'SO- estar parada mal'
1
Finalmente obtuve la solución. Necesitaba tus 2 opciones más eliminar ALWAYS_LAST_PROMPT. Entonces esto me da el comportamiento escurridizo que quería: setopt bash_auto_list; setopt no_auto_menu; deshacer ALWAYS_LAST_PROMPT; Una vez más, gracias por ayudarme con esto. Aprecio tu persistencia
Sridhar Sarnobat