Como habilitar a conclusão da guia de curingas no bash?

8

Como posso ativar o preenchimento de guias no bash para uma declaração como vim db/migrate/*crea? Essencialmente, estou procurando a conclusão da guia para corresponder à expressão regular e apresentar as opções.

Como alguém faria isso?

Esta pergunta se refere a uma pergunta que fiz aqui

rudolph9
fonte
4
a expressão db/migrate/*creanão é uma expressão regular. o *caractere aqui é usado como um curinga de expansão do bash.
Mircea Vutcovici
Claro que é uma expressão regular. Combina db/migrate///////crea. :-)
ghoti 24/10

Respostas:

3

Qual versão do bash você está usando? Para mim, com o 4.1.2, parece funcionar imediatamente no CentOS 6.2:

[user@host foo]$ cd /tmp/foo
[user@host foo]$ mkdir bar
[user@host foo]$ touch bar/foo{1,2,3}
[user@host foo]$ vim bar/*1
*TAB*
[user@host foo]$ vim bar/foo1 
[user@host foo]$ touch bar/bar1
[user@host foo]$ vim bar/*1
*TAB* *TAB*
[user@host foo]$ vim bar/*1
bar1/ foo1  

Você está certificando-se de tocar em TAB duas vezes para a lista de preenchimento automático?

zje
fonte
4
Isso tem mais a ver com os scripts de conclusão do Bash do que com a sua versão do Bash.
ephemient
1

show-all-if-ambiguousfaz com que pressionar a tecla tab uma vez (em vez de duas vezes) mostre todas as conclusões. Ele também altera a maneira como os globs são concluídos:

$ touch 1.0.{1,2}
$ bind 'set show-all-if-ambiguous off'
$ open *0* # I pressed tab twice here, and *0* was kept as *0*
1.0.1  1.0.2
$ open *0*^C
$ bind 'set show-all-if-ambiguous on'
$ open *0* # I pressed tab once here, and *0* was replaced with 1.0.
1.0.1  1.0.2
$ open 1.0.

glob-complete-word (\ eg) também completaria *0(sem um curinga no final) para 1.0.. Também funciona com padrões como */file*e **/file.

Lri
fonte