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ą”.


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 ...


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.