Cancelar a conclusão da guia zsh

10

Existe uma maneira de cancelar uma conclusão depois de iniciada? Às vezes, pressiono tolamente a guia para concluir automaticamente os alvos (apenas por pura indolência) e, em seguida, acabo tendo que esperar mais tempo do que se eu tivesse digitado todo o "install" ou "check" sozinho.

Não vi nada de nota na página de manual do zshzle, mas talvez eu tenha perdido alguma coisa? Existem outras conchas com essa capacidade?

EDIT : resposta trivial. Em vez disso: existe uma maneira de o zsh estimar que a conclusão da guia levaria um tempo relativamente longo para ser executada e perguntar se o usuário gostaria que isso fosse feito?

Zorawar
fonte
2
ctrl-cnão funciona?
03:
1
Droga, sim! Isso não me ocorreu por algum motivo. Acho que pensei que Ctrl-C teria feito algo mais dramático. Excluir a pergunta? (Ou talvez você quer um pouco de rep?)
Zorawar
1
Acho que não há uma maneira de estimar o tempo necessário para a conclusão de uma guia. Você pode armazenar em cache os resultados, mas provavelmente é isso.
Ulrich Dangel
1
@zorawar, estou apenas tentando ajudar, não obtendo pontuação alta:]
llua
1
ctrl-c não funciona para todos os mecanismos de conclusão do zsh. Se alguém souber de outras maneiras de impedir isso. Seria ótimo ter essa resposta aqui.
Xer0x

Respostas:

7

Um SIGINT interrompe a operação de conclusão atual e o leva de volta ao editor de linha. Então pressione Ctrl+ C. O efeito pode não ser imediato: o intérprete verifica apenas sinais em determinados pontos durante a execução (embora sejam frequentes) e o sinal pode demorar um pouco se o processo zsh estiver bloqueado em uma chamada do sistema (por exemplo, se for esperando um sistema de arquivos responder).

Infelizmente, se você pressionar Ctrl+ Cno momento errado e não houver conclusão em andamento no momento em que o sinal for entregue, sua linha de comando atual será cancelada. É difícil de corrigir sem ter duas chaves de interrupção diferentes, uma para conclusão e outra para o resto, e não tenho certeza se o zsh suporta isso.

Não é realmente possível avisá-lo se uma conclusão pode demorar muito tempo. A velocidade de uma função de conclusão geralmente é impulsionada principalmente pela velocidade na qual algumas informações podem ser lidas no sistema de arquivos; se essas informações estão em cache ou não, quanto existe e que tipo de sistema de arquivos é (por exemplo, ramdisk, disco rígido ou montagem NFS) tem muita influência.

Gilles 'SO- parar de ser mau'
fonte
1
Talvez um tempo limite configurável para a conclusão da guia seja um padrão sensato.
Antiduh
3

Você pode usar ctrl+ kpara cancelar o preenchimento automático. no entanto, também não consigo encontrar nenhuma informação do zsh guide , mas cancela o preenchimento automático.

j_tt2011
fonte