Quando estou digitando no bash e pressiono a tecla "tab" para concluir automaticamente, às vezes leva um tempo significativo. Por exemplo, o IO do arquivo para ler os diretórios leva> 5 segundos e, portanto, estou aguardando a conclusão do IO antes de poder continuar digitando. Fico frustrado e Ctrl-C para poder refazer o que estava digitando.
Ctrl-C é lamentável, pois devo redigitar tudo novamente. Como posso dizer ao bash para parar de tentar atender minha solicitação de preenchimento automático.
$ /long/path/to/some/d # once I've typed this, I press <TAB>. I now will be
# stuck waiting for perhaps 10 seconds. The only thing I
# know to do is Ctrl-C. When I press Ctrl-C, I am forced
# to retype the original command string.
$
bash
autocomplete
Chris
fonte
fonte
Respostas:
Acabei de encontrar isso aqui .
Use
Ctrl+\
. Ele interromperá a conclusão e retornará à sua linha de comando sem perder o comando atual.fonte
Você pode ter problemas semelhantes sem a conclusão da guia. Isso não introduz uma diferença técnica, ou seja, as mesmas soluções se aplicam.
Uma possibilidade é iniciar a pesquisa em segundo plano e gravar o resultado em um FIFO. Você pode ler o FIFO com um tempo limite (
read -t 0.3 ...
).Acho que vi uma solução mais simples do que as FIFOs aqui recentemente ... mas atualmente não me lembro disso.
read -t
também funciona com um pipeline, mas o acabamentoread
não mata as partes anteriores do pipeline e o pipeline retorna somente depois que todas as suas partes tiverem terminado.fonte
No Ubuntu 16.04, bater
q
funcionou para mim.Consulte este https://unix.stackexchange.com/a/341025/332159 .
fonte