Conclusão da guia Bash para de pesquisar

8

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.
$
Chris
fonte
Você pode querer dar uma olhada nisso. ubuntuforums.org/showthread.php?t=1865538
Ramesh

Respostas:

1

Acabei de encontrar isso aqui .

Use Ctrl+\. Ele interromperá a conclusão e retornará à sua linha de comando sem perder o comando atual.

Robin Thoni
fonte
Infelizmente isso não funcionou para mim no Ubuntu
josh
0

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 -ttambém funciona com um pipeline, mas o acabamento readnão mata as partes anteriores do pipeline e o pipeline retorna somente depois que todas as suas partes tiverem terminado.

Hauke ​​Laging
fonte
como isso é relevante para a questão ...?
Lensovet
@lensovet Se parece não haver uma maneira de resolver o problema da maneira solicitada (ou seja, abortar a pesquisa), uma dica de como (pelo menos em parte) evitar o problema me parece bastante útil.
Hauke ​​Laging