Saya memiliki utilitas konsol khusus saya cooltool
dengan daftar opsi
fooOption
barOption
Apa yang harus saya lakukan untuk mem-bash autocomplete opsi dengan menekan tab
tombol?
Maksud saya pengguna mengetik
$ ./cooltool foo_
lalu ditekan tab
. Lalu
$ ./cooltool fooOption _
muncul.
Jawaban:
Tulis skrip penyelesaian bash untuk
cooltool
. Paket bash-completion dilengkapi dengan skrip untuk banyak program populer, yang dapat Anda gunakan sebagai contoh.sumber
Cara paling sederhana adalah menambahkan berikut ini ke .bashrc Anda.
Setiap kali Anda mengetik
cooltool f[TAB][TAB]
,_cooltool()
fungsi dipanggil. Ini akan mengetahui apa kata parsial Anda saat ini dan kemudiancompgen
akan menentukan opsi mana yang cocok. Ini disimpan dalam array yang disebutCOMPREPLY
yang kemudian ditampilkan. Lihatman complete
danman compgen
untuk detailnya.Untuk tutorial yang bagus, lihat: Menulis Fungsi Penyelesaian Bash Anda sendiri
sumber
Anda mungkin ingin melihat lebih dekat di dalam direktori /etc/bash_completion.d di sistem Anda.
Anda juga harus membaca pengantar ini . Bagian kedua dari pendahuluan adalah yang Anda butuhkan.
sumber
Berikut adalah kode yang digunakan untuk penyelesaian git bash
sumber
Selain jawaban dogbane, Anda juga bisa melakukan:
jika Anda hanya ingin mencocokkan daftar kata dari awal string. Tampaknya sebagian besar opsi lengkap dan kompen. Saya hanya memperhatikan "permulaan string" yang cocok dengan perintah yang saya gunakan, jadi saya merasa rapi bahwa Anda dapat melakukan hal-hal lain dalam fungsi _cooltool seperti:
untuk mencocokkan di mana saja dalam nama opsi.
sumber