Digamos que eu tenho 3 arquivos em um diretório específico: abc.txt, aww.txt, ant.txt
Se eu fizer: cat a
(e pressione tab para ver as opções), o terminal exibirá os 3 nomes de arquivo:abc.txt, aww.txt, ant.txt
Existe alguma maneira de selecionar o enésimo resultado, em vez de digitar, especificando o número do índice nos resultados exibidos pelo terminal?
algo como: cat a2
para obter o segundo arquivo ( aww.txt
)?
bash
auto-completion
samsamara
fonte
fonte
ant.txt
). Também pode ser configurado para que seja possível iterar para trás para uma melhor navegação. Obviamente, isso implica mudar o shell para Zsh. Se você considera uma alternativa suficientemente boa, posso escrever uma resposta para isso.Respostas:
Supondo que você esteja usando o bash, adicione o seguinte ao seu
~/.bashrc
:Ou, para alterar os padrões de todos os programas que usam a biblioteca de conclusão da linha de leitura, não apenas o bash, crie o arquivo que
~/.inputrc
contém:Agora, quando você abre um novo terminal, pode pressionar:
Portanto, para o seu exemplo, digite Pg DnPg Dnou Alt+ 2Pg Dnpara obter o segundo arquivo
aww.txt
.fonte
cd
e alternando entre diretórios. Qual tecla você pressiona para "selecionar" esse diretório e começar a alternar o conteúdo desse diretório? Existe outra coisa para definir / ligar?bind '"\e\20": menu-complete-backward'
ebind '"\e\16": menu-complete'
.