É possível configurar o bash para o preenchimento automático com uma guia como o zsh?

13

Como a maioria das pessoas aqui sabe, ao usar o bash no prompt de comando, se você digitar parcialmente um nome de arquivo, um comando ou uma opção para um comando etc, o bash completará a palavra se houver exatamente uma correspondência.
Quando houver mais de uma correspondência, você precisará pressionar <Tab>duas vezes e o bash gerará uma lista de possíveis correspondências.
Eu gostaria de configurar o bash para simplesmente fornecer essas opções no primeiro <Tab>.
Isso é possível sem escrever um script? ou seja, uma opção de shell?

man bash possui uma seção "conclusão programável", mas não consegui descobrir se existe uma opção para ativar a "conclusão de uma única guia".

the_velour_fog
fonte

Respostas:

17

Coloque isso no seu ~/.inputrc:

set show-all-if-ambiguous on

Para crédito adicional, adicione:

set completion-ignore-case on

Todas as opções estão no manual GNU ...

jasonwryan
fonte
3
Atenção: colocar isso no seu ~/.bash_profilenão funcionará. Tem que ir no seu~/.inputrc
yndolok 26/09
5
Sem brincadeira ... É por isso que eu especifiquei colocá-lo lá.
Jasonwryan # 26/17
6

Não tenho reputação suficiente para comentar, mas acrescentaria às respostas de jasonwryans que elas podem ser adicionadas .bash_profileou .bashrcescritas como:

bind 'set show-all-if-ambiguous on'
bind 'set completion-ignore-case on'

Caso alguém encontre essa pergunta como eu.

Thomas Jansson
fonte