Czy można skonfigurować bash do autouzupełniania za pomocą jednej karty, takiej jak Zsh?

13

Jak wie większość ludzi tutaj, gdy używasz bash w wierszu polecenia, jeśli częściowo wpiszesz nazwę pliku polecenie lub opcję polecenia itp., Bash uzupełni słowo, jeśli istnieje dokładnie jedno dopasowanie.
Kiedy jest więcej niż jeden mecz, musisz uderzyć <Tab>dwa razy, a bash wygeneruje listę możliwych dopasowań.
Chciałbym skonfigurować bash, aby po raz pierwszy udostępniał te opcje <Tab>.
Czy to możliwe bez napisania skryptu? tj. opcja powłoki?

man bash ma sekcję „programowalne zakończenie”, ale nie mogłem się zorientować, czy istnieje opcja włączenia „uzupełniania pojedynczą kartą”.

the_velour_fog
źródło

Odpowiedzi:

17

Umieść to w ~/.inputrc:

set show-all-if-ambiguous on

Aby uzyskać dodatkowy kredyt, dodaj:

set completion-ignore-case on

Wszystkie opcje są w instrukcji GNU ...

jasonwryan
źródło
3
Uwaga: umieszczenie tego w swoim ~/.bash_profilenie zadziała. Musi iść w twoje~/.inputrc
yndolok
5
Bez żartów ... Dlatego postanowiłem go tam umieścić.
jasonwryan
6

Nie mam wystarczającej reputacji, aby komentować, ale dodawałbym do jasonwryans odpowiedzi, które można dodać do .bash_profilelub .bashrcpisząc je jako:

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

Sądzę, że ktokolwiek inny znajdzie to pytanie, tak jak ja.

Thomas Jansson
źródło