Como preencher automaticamente nomes longos de arquivos no terminal

1

Se eu tiver no diretório atual um arquivo com um nome longo começando com "build" eu posso escrever no console "build", pressione Tab e autocomplete digite full filename para mim. No entanto, se eu tiver vários arquivos que começam com build , o preenchimento automático não funciona - ele simplesmente me fornece uma lista de arquivos que começam com build .

Pelo contrário, no Windows, pressionar a tecla Tab dá-me imediatamente o nome completo do primeiro arquivo e, se pressionar a tecla Tab segunda vez, dá-me o segundo nome.

Como autocompletar nomes de arquivos no Linux como no Windows? PS: É realmente terrível se eu tiver vários nomes de arquivos longos que diferem apenas por extensão.

    
por Rem 04.03.2016 / 20:57

3 respostas

3

Se eles diferirem por extensão, somente o preenchimento automático será preenchido automaticamente até que haja várias opções. Quando a tabulação gerar uma lista de nomes, digite o próximo caractere e pressione a guia novamente para retomar a conclusão automática.

Como eu sou linuxista, eu realmente tenho brigas com o modo como o autocompletar funciona, acho que é com o que você está acostumado;)

    
por 04.03.2016 / 21:09
1

Você tem duas opções:

1) Você pode digitar mais uma letra e aba novamente

2) Use um shell com melhores conclusões. Eu uso o zsh, mas o peixe tem conclusões incríveis (um pouco melhores) também

Para zsh, confira oh-my-zsh

EDIT: Pelo menos no padrão zsh Config, você precisa tab duas vezes antes de começar a percorrer as opções

    
por 05.03.2016 / 07:39
1

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 completamente a solução 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 do sistema, disponibilizando isso para todos os usuários do seu sistema.

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

    ele avança em:

    e file1
    e file2
    e file3
    

    e quando você quiser recuar, basta pressionar Shift + Tab

  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! ; -)

Fonte

    
por 16.09.2018 / 09:18