¿Cómo habilitar la finalización de tabulación de comodines en bash?

8

¿Cómo puedo habilitar la finalización de pestañas en bash para una declaración como vim db/migrate/*crea? Básicamente, estoy buscando completar la pestaña para que coincida con la expresión regular y presentar las opciones.

¿Cómo se podría hacer esto?

Esta pregunta se relaciona con una que hice aquí

rudolph9
fuente
44
La expresión db/migrate/*creano es una expresión regular. el *personaje aquí se usa como comodín de expansión bash.
Mircea Vutcovici
Claro que es una expresión regular. Se coincide db/migrate///////crea. :-)
ghoti

Respuestas:

3

¿Qué versión de bash estás usando? Para mí con 4.1.2, parece funcionar de fábrica en 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  

¿Se asegura de tocar TAB dos veces para la lista de autocompletar?

zje
fuente
44
Esto tiene más que ver con sus scripts de finalización de Bash que con su versión de Bash.
Ephemient
1

show-all-if-ambiguoushace que presionar la tecla una vez (en lugar de dos veces) muestre todas las finalizaciones. También cambia la forma en que se completan los globos:

$ 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) también completaría *0(sin un comodín al final) a 1.0.. También funciona con patrones como */file*y **/file.

Lri
fuente