Apakah mungkin untuk mengkonfigurasi bash untuk melengkapi otomatis dengan satu tab seperti zsh?

13

Seperti yang diketahui sebagian besar orang di sini, saat menggunakan bash pada command prompt jika Anda mengetik sebagian nama file, perintah atau opsi untuk perintah, dll, bash akan menyelesaikan kata jika hanya ada satu kecocokan.
Ketika ada lebih dari satu pertandingan, Anda harus menekan <Tab>dua kali dan bash akan menghasilkan daftar kemungkinan yang cocok.
Saya ingin mengonfigurasi bash untuk menyediakan opsi-opsi itu pada yang pertama <Tab>.
Apakah ini mungkin tanpa menulis skrip? yaitu opsi shell?

man bash memiliki bagian "penyelesaian yang dapat diprogram" tetapi saya tidak dapat melihat apakah ada opsi untuk mengaktifkan "penyelesaian satu tab".

the_velour_fog
sumber

Jawaban:

17

Letakkan ini di ~/.inputrc:

set show-all-if-ambiguous on

Untuk kredit tambahan, tambahkan:

set completion-ignore-case on

Semua opsi ada di manual GNU ...

jasonwryan
sumber
3
Kepala: meletakkan ini di Anda ~/.bash_profiletidak akan berhasil. Itu harus masuk~/.inputrc
yndolok
5
Tidak bercanda ... Itu sebabnya saya tentukan menempatkannya di sana.
jasonwryan
6

Saya tidak memiliki reputasi yang cukup untuk berkomentar, tetapi saya akan menambahkan jawaban jasonwryans yang dapat ditambahkan .bash_profileatau .bashrcdengan menuliskannya sebagai:

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

Saya kira ada orang lain yang menemukan pertanyaan ini seperti saya.

Thomas Jansson
sumber