Como fazer o preenchimento automático do terminal quando existem vários arquivos / diretório?

24

Se eu tiver vários diretórios, como:

afoo abar

às vezes, meu terminal recusará o preenchimento automático quando eu pressionar a guia (por exemplo, "cd a" e a guia) e, em vez disso, imprimir a lista de diretórios. Às vezes, até lança um som barulhento e irritante. Alguma idéia de como torná-lo autocompletar em casos como este? Por exemplo, ele pode ser exibido primeiro e depois afoo se eu pressionar a guia novamente. Eu vi este é o caso no windows, ou algum applciation no Ubuntu

    
por TifatulS 11.04.2013 / 16:57

2 respostas

30

Algo que é um salva-vidas para mim é ter o ciclo bash através das possibilidades, em vez de mostrar uma lista estúpida.

Como o bash está usando readline para seu preenchimento automático, adicione as seguintes linhas a ~/.inputrc

Quando estiver satisfeito e tiver testado minuciosamente por alguns dias / semanas, recorte e cole (não copie!) as mesmas configurações de ~/.inputrc a /etc/inputrc que contém as configurações de todo o sistema, disponibilizando isso para todos os usuários em seu sistema (incluindo guest).

O codez:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

depois exit do seu terminal (ou terminal remoto como o putty) e abra-o novamente ...

Exemplos:

  1. Quando você tem 3 arquivos: file1 , file2 e file3 e digita:

    e fTabTabTab

    passará por:

    e file1
    e file2
    e file3
    

    e quando você quiser voltar, clique em Shift + guia

  2. Quando você digita:

    very-complicated-command with lots of command line parameters
    

    e da próxima vez que você precisar do mesmo comando, basta digitar:

    very

    e vai escrever para você:

    very-complicated-command with lots of command line parameters
    

Isso vai poupar muito tempo em bash! ; -)

    
por Fabby 11.04.2015 / 09:32
16

Após a primeira aba você precisa inserir mais letras. Então, se você digitar

cd a

e clique na aba você não recebe nada e depois de uma segunda aba (imediatamente após) você obtém uma lista dos nomes que começam com a e então precisa inserir um f para que o preenchimento automático seja concluído, de forma que

cd a separador f separador

resultará em

cd afoo
    
por Rinzwind 11.04.2013 / 17:08