Penyelesaian tab terminal [duplikat]

15

Kemungkinan Duplikat:
Selesaikan Bash untuk perintah di Mac OS

Saya baru saja pindah dari linux ke mac, dan salah satu masalah yang saya alami adalah penyelesaian tab hanya sedalam 1 level, dan saya tidak yakin bagaimana cara memperbaikinya.

Biarkan saya jelaskan dengan contoh - ketika saya menggunakan git di ubuntu, saya akan mulai mengetik

$ git

dan tekan tab, dan shell akan menyelesaikan perintah atau menampilkan opsi yang tersedia untuk huruf yang telah saya ketik. Itulah yang terjadi pada mac saya juga (1 level). Namun, ketika saya terus mengetik bagian selanjutnya dari perintah

$ git commit

dan tekan tab, terminal mac tidak akan menyelesaikan sub perintah berikutnya (untuk git) seperti di Linux. Hal yang sama berlaku untuk program lain yang mendukung penyelesaian perintah bertingkat ini. Saya menduga ini mungkin masalah perpustakaan readline, tapi saya tidak yakin yang mana yang harus saya instal.

Sa125
sumber
Ini bukan masalah readline (pada kenyataannya, ini bukan "masalah"), itu karena Ubuntu memegang tangan Anda dengan paket khusus untuk bash.
Jed Smith
Ini jelas merupakan masalah konfigurasi bash (karena saya mendapatkan perilaku ini di mac + banyak lagi yang telah saya konfigurasikan untuknya, seperti penyelesaian nama host) Anda harus mencari skrip daya untuk bash dan menambahkannya ke profil Anda.
Shane C. Mason

Jawaban:

13

Unduh bash_completion dan sumber dari .bashrc. Kemudian masukkan contrib/completion/git-completion.bashdari distribusi git ke bash_completion.d.

Atau Anda dapat menginstalnya melalui MacPorts .


sumber
terima kasih, ini bekerja. Saya menambahkan yang berikut ini di .bashrc saya jika [-f / opt / local / etc / bash_completion]; kemudian sumber / opt / local / etc / bash_completion fi
sa125
1
Bahkan lebih baik, instal melalui homebrew: brew install bash-completion
abyx
@abyx: memilih "yang lebih baik" antara homebrew dan macports adalah hal yang sangat subyektif
2

Untuk git ada opsi yang tersedia pada kompilasi untuk mendukung penyelesaian.

Jika Anda menggunakan port untuk menginstal Git (yang saya sarankan), Anda dapat menginstal ulang git dengan perintah ini

sudo port install git-core +svn+bash_completion+doc

Yang akan menginstal git dengan penyelesaian bash, dukungan dan dokumentasi git-svn

Aurélien Bottazini
sumber