Fazer a conclusão da guia do BASH preencher a primeira partida?

11

Existe alguma maneira de fazer o BASH preencher a primeira correspondência quando eu pressiono TAB, como o prompt de comando do Windows?

(Ele ainda deve exibir a lista de correspondências, mas deve alternar entre elas quando eu continuar pressionando a tecla tab.)

ou seja, o objetivo aqui é ser capaz de preencher qualquer correspondência apenas com a tecla TAB, pressionando o suficiente - como no Windows.

user541686
fonte

Respostas:

15

Adicione o seguinte ao seu .inputrcarquivo (a localização exata varia entre os sistemas):

"\C-i": menu-complete

Isso mapeia a TAB para a conclusão do menu, que conclui automaticamente a primeira correspondência.

Em seguida, adicione (ou descomente) show-all-if-ambiguous, isso mostra a lista de possíveis conclusões na primeira impressora TAB.

Como alternativa, você pode definir o menu completo por sessão (sem edição .inputrc) fazendo

bind '"\C-i" menu-complete'
Philomath
fonte
Não. Definitivamente, isso não se parece com o prompt de comando do Windows. :-)
user541686
@ Mehrdad: editado, espero ter conseguido agora.
Philomath
+1 quase !!! É o que eu quero, mas existe alguma maneira de fazer isso e exibir o menu se for ambíguo? (Pode estar pedindo muito, eu sei, mas espero que seja possível.) #
User541686
@ Mehrdad: se é o que você quer, aceite, isso ajuda as pessoas a obter as respostas certas rapidamente. Quanto ao seu novo pedido para fazer as duas coisas ao mesmo tempo, não acredito que seja possível, mas quem sabe? ... No entanto, você pode vincular menu-complete- se a outra sequência de teclas, como "\M-s"para Meta+S, para poder escolher à vontade.
Philomath
1
Você sabe o que? Parece que ele está realmente fazendo exatamente o que eu quero: primeiro mostrando o menu e depois percorrendo as opções! Acho que não vi isso no primeiro computador que tentei (talvez não estivesse prestando atenção), mas parece estar funcionando perfeitamente! :) (Edit: Parece que você precisa tanto essa configuração e show-all-if-ambiguous para estar ligado para que isso funcione.)
user541686
4

Embora eu não saiba como fazer com que essa funcionalidade funcione com o bash, o zsh vem com a configuração exata do que você deseja por padrão. Confira oh-my-zsh e zsh .

O zsh possui a maioria dos recursos do bash, com algumas funcionalidades adicionais prontas para uso, como a capacidade de navegar apenas com a guia e entrar!

A maioria das distribuições Linux vem com um pacote para instalar o zsh.

Chris Knadler
fonte
1
... oh meu zsh !! Isso é interessante, vou dar uma olhada ... pode ou não fazer o que eu preciso.
user541686
Ainda bem que pude ajudar. Que distribuição você está usando? Posso dar uma resposta mais profunda com um guia sobre como instalar o zsh e, oh, meu zsh.
31711 Chris Knadler
+1 Eu instalei o zsh, parece incrível! Se não tiver problemas, também posso aceitar isso, obrigado! :) (eu estou usando o Ubuntu btw.) #
3151686
Impressionante, se você acabou de executar o apt-get install zsh e, em seguida, o auto-instalador do oh-my-zsh aqui , você deve estar pronto. Entre em contato se precisar de ajuda para configurá-lo.
31711 Chris Knadler