Saya mencoba menggunakan penyelesaian tab untuk perintah di Ubuntu 11.04 Beta 1, menjalankan semua pembaruan terbaru, tetapi sepertinya tidak berhasil. (Meskipun paket bash-completion diinstal)
Penyelesaian tab hanya berfungsi dengan benar untuk direktori atau file.
Ada ide tempat menggali?
bash
auto-completion
Screatch
sumber
sumber
Jawaban:
Periksa apakah Anda memiliki fragmen berikut di .bashrc Anda (harus ada di sana secara default)
sumber
bash-completion
ini diperlukan agar ini berfungsi. Anehnya, instalasi standar perusahaan saya tidak memiliki paket ini.Saya pikir saya juga akan menambahkan penjelasan tambahan berikut untuk kegagalan penyelesaian bash - terlalu lama untuk komentar dan mungkin berguna bagi seseorang yang memiliki masalah dengan penyelesaian bash, karena mungkin ini adalah pertanyaan kanonik 'umum' yang semua duplikat disebut.
Bahkan jika Anda memiliki baris yang sesuai di
.bashrc
(seperti pada jawaban di atas) danbash-completion
paket yang diinstal, penyelesaian bash masih dapat mengalami kegagalan fungsi jika Anda memilikishopt -s nullglob
ataushopt -s failglob
di dalam.bashrc
atau.bash_aliases
.Skenario berikut diuji dengan semua kustomisasi pengguna
.bashrc
dan.bash_aliases
dihapus untuk memberikan tes yang adil, dengan garis penyelesaian bash yang sesuai pada.bashrc
saat ini dan dengan yangbash-completion
diinstal.1) Skenario pertama adalah ketika Anda memiliki
shopt -s failglob
di.bashrc
atau.bash_aliases
.Ketika mencoba masing-masing direktori dan file lengkap tab, kesalahan ini akan terjadi:
Namun, perintah akan tetap berhasil diselesaikan.
2) Dengan
shopt -s nullglob
diaktifkan, mencoba tab untuk menyelesaikan direktori atau file sebagai gantinya akan mengarah ke semua yang terdaftar, tanpa penyelesaian:Saya telah memotong daftar di sini, karena itu sangat panjang dan tidak perlu mereproduksi semuanya.
Sekali lagi, penyelesaian perintah masih akan berfungsi.
Jadi, hanya menghapus
shopt -s failglob
ataushopt -s nullglob
juga bisa menyelesaikan masalah kesalahan dengan selesai bash, dengan asumsi bahwa Anda memiliki garis yang sesuai di Anda.bashrc
danbash-completion
diinstal.sumber
Selain memodifikasi
/etc/bash.bashrc
file (lihat jawaban lain) Anda mungkin perlu menginstalbash-completion
paket.Periksa, apakah
/etc/bash_completion
file keluar. Jika tidak:(Dalam instalasi Debian 7 saya awalnya tidak diinstal)
sumber
Dasar seperti kedengarannya pastikan bash adalah shell aktif Anda
Saya baru saja memutakhirkan ke Ubuntu 14.04.1 LTS dan tidak memiliki tab pelengkapan otomatis, bahkan setelah mengikuti saran pada posting ini, hanya untuk menyadari bahwa shell saya telah disetel ke
/bin/sh
dan tidak/bin/bash
.sumber
Memperbarui ke Ubuntu 14.04.01
Periksa apakah Anda memiliki fragmen berikut di .bashrc Anda (harus ada di sana secara default)
sudo vim /etc/bash.bashrc (ketik "i" untuk mengedit file)
Batalkan komentar 7 baris di atas
Simpan file "esc + w + q + enter"
Mulai ulang bash
exec bash
sumber