Como fazer com que o BASH tente e autocomplete no Enter

1

Eu notei que para muitos dos comandos que eu uso no bash eu realmente aprendi quantas letras do comando eu devo digitar antes que eu possa pressionar [TAB] para que o bash autocomplete o comando com sucesso. Por exemplo, ao abrir o cromo, eu normalmente não escrevo o comando inteiro, mas, em vez disso, digito

$ chrom[TAB][ENTER]

e o bash autocomplete com sucesso o comando para chromium antes de pressionar a tecla [ENTER]. Existe uma maneira de fazer o autocomplete funcionar sem ter que pressionar [TAB]? Meu pensamento geral é que, se eu digitar

$ chrom[ENTER]
O

bash poderia verificar e ver que chrom não é um comando válido, mas faria sentido preenchê-lo automaticamente para chromium , já que esse é o único comando que começa com chrom

    
por seanwatson 16.06.2012 / 14:37

2 respostas

1

Esta é apenas uma ideia, já que eu sinto que o TAB não é tão difícil de acertar, a memória muscular é uma coisa incrível.

Mas se estamos indo para o máximo de perversidade:

O shell BASH tem um recurso que envolve a função 'command_not_found_handler', que geralmente é usada em muitas situações como um notificador "Command Not Found", onde informa onde você pode encontrar mais informações sobre o que você digitou errado. Isso é frequentemente pré-instalado no Ubuntu.

Claro, mais informações são facilmente encontradas na BASH Man Page, tente procurar por 'not_found'.

Esse poderia ser vencido e usado para implementar seu desejo de completar a aba na falha. O código real é deixado como um exercício para o leitor.

Concordo plenamente com @Marco acima, que REALMENTE quero que o feedback veja / saiba o que eu digitei e o que recebi são substancialmente similares.

Parece mais uma Inovação Microsoft .

    
por 17.06.2012 / 18:37
0

Os alias são definitivamente seus amigos aqui, por exemplo:

alias code='cd ~/Dropbox/97_2012/work/ror/code'
alias docs='cd ~/Dropbox/97_2012/work/setups'

para que eu possa digitar

$ code

ou

$ docs

e eu vou ser colocado no diretório apropriado.

Você os coloca em um arquivo .bash_aliases em seu diretório pessoal (" ~ ").

Você inclui isso (e esse código provavelmente já existe) no seu arquivo .bashrc com:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

Se você adicioná-los e quiser vê-los imediatamente, inicie uma nova sessão de shell ou execute seu .bashrc em sua sessão de terminal atual, por exemplo, . ~/.bashrc ou apenas apenas os aliases, . ~/.bash_aliases

Isso é melhor do que a abordagem inicialmente delineada por vários motivos e é a abordagem usada pela comunidade para fornecer essa funcionalidade.

    
por 16.06.2012 / 15:22

Tags