Bagaimana cara TAB melengkapi opsi secara otomatis?


Jawaban:


22

Tergantung pada perintah:

  • Seseorang mungkin telah menulis fungsi untuk menghasilkan kemungkinan penyelesaian argumen, termasuk opsi. Anda akan menemukan fungsi untuk beberapa perintah di /etc/bash_completion.d/*(atau lokasi yang berbeda di beberapa sistem). Fungsi-fungsi ini terdaftar dengan built-in (mis. Memberitahu bash untuk memanggil fungsi ketika Anda menekan pada perintah). Mereka menggunakan built-in untuk memberi tahu bash "di sini adalah kemungkinan penyelesaian".complete complete -F _find find_findTabfindcompgen
  • Untuk beberapa perintah, bash akan memanggil perintah dengan argumen --helpdan mengurai hasilnya. Perintah tersebut dapat didaftarkan dengan completebuilt-in, mis complete -F _longopt ls. _longoptsebenarnya adalah fungsi generasi penyelesaian, yang terjadi untuk mem-parsing output perintah daripada menggunakan daftar tetap. (Ada fungsi penyelesaian lebih khusus lainnya yang mengurai output perintah untuk menghasilkan penyelesaian yang mungkin; lihat /etc/bash_completion.d/*contohnya.)
  • Untuk hal-hal seperti alias, fungsi penyelesaian mencari mereka di tabel internal bash. The completebuilt-in memiliki pilihan untuk itu, misalnya -Auntuk alias.

10

Lihatlah file tersebut

/ etc / bash_completion

dan amati file-file dari direktori:

/etc/bash_completion.d

Anda akan menemukan jawabannya.


2

Dukungan untuk penyelesaian bash disediakan di Debian dan Ubuntu oleh paket penyelesaian bash . Anda juga biasanya perlu menghapus tanda komentar pada /etc/bash.bashrcdan / atau .bashrcuntuk mencari file penyelesaian bash berikut. Berikut ini dari /etc/bash.bashrc:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

agar ini bekerja. Saya biasanya batalkan komentar pada keduanya. Penanganan kerang interaktif / login di Debian sedikit berantakan.

Komentar serupa mungkin berlaku untuk distribusi lain, meskipun mungkin mereka mengaktifkan sumber secara default.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.