Annulla il completamento della scheda zsh


10

C'è un modo per annullare un completamento una volta che è stato avviato? A volte premo stupidamente tab per completare automaticamente gli obiettivi (solo per pura indolenza) e poi finisco per dover aspettare un tempo più lungo rispetto a se avessi appena digitato l'intero "installa" o "controlla" da solo.

Non ho visto nulla di interessante nella pagina man di zshzle, ma forse mi sono perso qualcosa? Altre shell hanno questa capacità?

EDIT : risposta di prova. Quindi invece: c'è un modo per zsh di stimare che il completamento della scheda richiederebbe un tempo relativamente lungo per essere eseguito e invece chiedere se l'utente vorrebbe che fosse fatto?


2
ctrl-cnon funziona?
llua,

1
Dannazione, lo fa! Questo non mi è venuto in mente per qualche motivo. Immagino di aver pensato che Ctrl-C avrebbe fatto qualcosa di più drammatico. Elimina la domanda? (O forse vuoi qualche rappresentante?)
Zorawar,

1
Non penso che ci sia un modo per stimare il tempo necessario per il completamento di una scheda. È possibile memorizzare nella cache i risultati, ma probabilmente è quello.
Ulrich Dangel,

1
@zorawar, sto solo cercando di aiutare, non di ottenere un punteggio elevato:]
llua,

1
ctrl-c non funziona per tutti i meccanismi di completamento di zsh. Se qualcuno conosce altri modi per fermarlo. Sarebbe bello avere questa risposta qui.
xer0x,

Risposte:


7

Un SIGINT interrompe l'operazione di completamento corrente e riporta all'editor di riga. Quindi premi Ctrl+ C. L'effetto potrebbe non essere immediato: l'interprete verifica solo i segnali in determinati punti durante l'esecuzione (sono frequenti, tuttavia) e il segnale potrebbe richiedere del tempo se il processo zsh è bloccato in una chiamata di sistema (ad esempio, se è in attesa che un filesystem risponda).

Sfortunatamente, se si preme Ctrl+ Cal momento sbagliato e non è in corso alcun completamento entro la consegna del segnale, la riga di comando corrente verrà annullata. Questo è difficile da risolvere senza avere due diversi tasti di interruzione, uno per il completamento e uno per il resto, e non sono sicuro che zsh lo supporti.

Non è davvero possibile avvisarti se un completamento potrebbe richiedere molto tempo. La velocità di una funzione di completamento è spesso determinata principalmente dalla velocità con cui alcune informazioni possono essere lette dal filesystem; se queste informazioni sono nella cache o meno, quanto ci sono e che tipo di file system (ad es. ramdisk, hard disk o NFS mount) ha molta influenza.


1
Forse un timeout configurabile per il completamento della scheda sarebbe un valore predefinito ragionevole.
antiduh,

3

È possibile utilizzare ctrl+ kper annullare il completamento automatico. tuttavia non riesco a trovare alcuna informazione dalla guida zsh , ma annulla il completamento automatico.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.