È possibile configurare bash per il completamento automatico con una scheda come zsh?


13

Come molti sanno qui, quando si utilizza bash al prompt dei comandi se si digita parzialmente un nome file un comando o un'opzione per un comando ecc., Bash completerà la parola se esiste esattamente una corrispondenza.
Quando c'è più di una partita, devi colpire <Tab>due volte e bash genererà un elenco di possibili partite.
Vorrei configurare bash per fornire semplicemente quelle opzioni sul primo <Tab>.
È possibile senza scrivere una sceneggiatura? cioè un'opzione shell?

man bash ha una sezione "completamento programmabile" ma non sono riuscito a capire se esiste un'opzione per abilitare il "completamento a scheda singola".


Risposte:


17

Metti questo nel tuo ~/.inputrc:

set show-all-if-ambiguous on

Per ulteriore credito, aggiungi:

set completion-ignore-case on

Tutte le opzioni sono nel manuale GNU ...


3
Heads up: mettere questo nel tuo ~/.bash_profilenon funzionerà. Deve andare nel tuo~/.inputrc
yndolok il

5
Non scherzo ... Ecco perché ho specificato di metterlo lì.
Jasonwryan,

6

Non ho abbastanza reputazione per commentare, ma aggiungerei alle risposte jasonwryans che possono essere aggiunte .bash_profileo .bashrcscrivendole come:

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

Immagino che chiunque trovi questa domanda come ho fatto io.

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.