Jadikan tab-penyelesaian bash tidak sensitif [duplikat]

40

Kemungkinan Duplikat:
Penyelesaian tab tidak peka huruf pada Bash

Apakah ada cara untuk membuat penyelesaian tab di bash case-sensitive? Misalnya, jika saya memiliki file yang dipanggil Hello.txtdan mencoba untuk melengkapinya dengan mengetik hediikuti dengan Tabitu tidak akan berfungsi. Saya harus melengkapinya dengan mengetik He(perhatikan huruf kapital H) dan Tab. Apakah ada cara untuk mengatur bash jadi saya tidak harus menyimpan case ketika saya mengetik dan mencoba untuk melengkapinya?

Wuffers
sumber
Saya senang mengetahui bahwa ini bekerja di Linux, karena pertanyaan lainnya adalah khusus-OSX, @sathya
earthmeLon

Jawaban:

55

Buat file dengan nama .inputrcdi direktori home Anda, dan tempatkan baris ini di dalamnya:

set completion-ignore-case on

Kemudian buka shell baru dan coba. Jika / etc / inputrc ada di sistem Anda, umumnya Anda juga harus menambahkan baris $include /etc/inputrc. Tetapi tidak ada cara untuk membuat persyaratan ini, jadi Anda hanya perlu menambahkannya jika file itu ada.

Gordon Davisson
sumber
14
Ini akan mencegah bash membaca dari default /etc/inputrc, menghancurkan hal-hal seperti navigasi dengan ctrl-kiri / kanan. Pastikan untuk menambahkan $include /etc/inputrcdi Anda ~/.inputrc.
Nicolas Marchildon
1
Anda juga dapat menggunakan bind -f ~ / .inputrc untuk memuat ulang perubahan ini.
Uskup
2
Saya akan memasukkan komentar @NicolasMarchildon ke dalam jawabannya, karena seharusnya ada di sana
theEpsilon
Anehnya, itu tidak berhasil untuk saya. Inilah saya ~/.inputrc: pastebin.com/WVQmrNZu
Aleksei Petrenko
@ AlexeyPetrenko Itu terlihat ok bagi saya. Apakah ada karakter yang tidak terlihat dalam file yang mengacaukan semuanya? Coba cetak dengan LC_ALL=C cat -vet ~/.inputrc- Anda akan melihat "$" di akhir setiap baris, tetapi tidak ada yang lucu. Juga, coba bind -v, dan lihat apa yang ditampilkan untuk completion-ignore-casevariabel. Akhirnya, apakah ada sesuatu di file init shell lain yang mungkin mengubahnya?
Gordon Davisson