Come abilitare il completamento con schede dei caratteri jolly in bash?


8

Come posso abilitare il completamento delle schede in bash per una dichiarazione come vim db/migrate/*crea? In sostanza sto cercando il completamento della scheda per abbinare l'espressione regolare e presentare le opzioni.

Come si potrebbe fare per fare questo?

Questa domanda riguarda quella che ho posto qui


4
l'espressione db/migrate/*creanon è un'espressione regolare. il *personaggio qui è usato come jolly di espansione bash.
Mircea Vutcovici,

Certo è un'espressione regolare. Corrisponde db/migrate///////crea. :-)
ghoti,

Risposte:


3

Quale versione di bash stai usando? Per me con 4.1.2, sembra funzionare immediatamente su 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  

Assicurati di toccare due volte TAB per l'elenco di completamento automatico?


4
Questo ha più a che fare con gli script di completamento di Bash che con la versione di Bash.
effimero

1

show-all-if-ambiguousconsente di premere una volta la scheda (anziché due volte) per mostrare tutti i completamenti. Cambia anche il modo in cui i globs vengono completati:

$ 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) completerebbe anche *0(senza un carattere jolly alla fine) in 1.0.. Funziona anche con modelli come */file*e **/file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.