Cancelar la finalización de la pestaña zsh

10

¿Hay alguna forma de cancelar una finalización una vez que se ha iniciado? A veces presiono tontamente la pestaña para autocompletar los objetivos de fabricación (solo por pura indolencia) y luego termino teniendo que esperar más tiempo que si acabara de escribir todo "instalar" o "verificar".

No vi nada notable en la página de manual de zshzle, pero ¿tal vez me perdí algo? ¿Alguna otra concha tiene esta capacidad?

EDITAR : respuesta trivial. Entonces, en cambio: ¿hay alguna manera para que zsh calcule que la finalización de la pestaña tomaría un tiempo relativamente largo para ejecutarse y en su lugar pregunta si el usuario desea que se haga esto?

Zorawar
fuente
2
ctrl-cno funciona
llua
1
Maldita sea, lo hace! Eso no se me ocurrió por alguna razón. Creo que pensé que Ctrl-C habría hecho algo más dramático. ¿Eliminar la pregunta? (¿O tal vez quieres algún representante?)
Zorawar
1
No creo que haya una manera de estimar el tiempo que lleva completar una pestaña. Puede almacenar en caché los resultados, pero eso es probablemente todo.
Ulrich Dangel
1
@zorawar, solo estoy tratando de ayudar, no obtener puntaje alto:]
llua
1
ctrl-c no funciona para todos los mecanismos de finalización de zsh. Si alguien sabe de otras formas de detener esto. Sería genial tener esa respuesta aquí.
xer0x

Respuestas:

7

Un SIGINT interrumpe la operación de finalización actual y lo regresa al editor de línea. Entonces presiona Ctrl+ C. Es posible que el efecto no sea inmediato: el intérprete solo busca señales en ciertos puntos durante la ejecución (sin embargo, son frecuentes), y la señal puede tardar un tiempo si el proceso zsh está bloqueado en una llamada al sistema (por ejemplo, si es esperando que responda un sistema de archivos).

Desafortunadamente, si presiona Ctrl+ Cen el momento equivocado y no hay finalización en progreso para el momento en que se entrega la señal, su línea de comando actual se cancelará. Esto es difícil de solucionar sin tener dos teclas de interrupción diferentes, una para completar y otra para el resto, y no estoy seguro de si zsh lo admite.

No es realmente factible advertirte si una finalización puede llevar mucho tiempo. La velocidad de una función de finalización a menudo se debe principalmente a la velocidad a la que se puede leer cierta información del sistema de archivos; si esta información está en caché o no, cuánto hay y qué tipo de sistema de archivos es (por ejemplo, ramdisk, disco duro o montaje NFS) tiene mucha influencia.

Gilles 'SO- deja de ser malvado'
fuente
1
Quizás un tiempo de espera configurable para la finalización de la pestaña sería un valor predeterminado sensato.
antiduh
3

Puede usar ctrl+ kpara cancelar la finalización automática. sin embargo, tampoco puedo encontrar ninguna información de la guía zsh , pero cancela la finalización automática.

j_tt2011
fuente