mewarnai bash_completion

9

Ketika saya mengetik grepdan kemudian menekan TABdua kali, bash_completionakan mencantumkan file dan direktori di direktori saat ini. Itu juga akan melengkapi nama file ketika saya mengetik huruf awal. Itu semua sangat bagus, satu-satunya masalah adalah ketika direktori berisi banyak file dan subdirektori, itu bisa sangat kacau dan tidak terorganisir.

Ini akan sangat membantu jika bash_completionsetidaknya dapat mewarnai direktori secara berbeda, sama seperti apa yang ls -lAdilakukan.

Apakah ini mungkin?

EDIT:

ini adalah contoh bash_completionfile konfigurasi saya :

if [[ ${cur} == -* ]] ; then
    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
    return 0

else
    _filedir
fi
Martin Vegter
sumber
1
Saya tidak tahu apakah ini mungkin dilakukan bashtetapi ini adalah perilaku default di zsh.
terdon
1
seandainya tidak jelas, saya mencari solusi untukbash
Martin Vegter
File apa yang Anda perlihatkan?
terdon

Jawaban:

7

Tidak ada fitur di luar kotak seperti ini di versi Bash saat ini, Anda dapat melakukan ini dengan menggunakan zsh, ada di sana secara default.

Salah satu alat yang terkait dengan penyelesaian disebut compgen. Anda dapat meyakinkannya untuk menampilkan perintah yang diwarnai dengan benar, tetapi ini adalah peretasan dan tidak terlalu berguna.

$ compgen -W "$(ls --color=always *)"

Itu akan membuat daftar file keluar benar berwarna, tetapi mendapatkan warna dari ls, jadi saya tidak akan mempertimbangkan pewarnaan asli ini dengan auto_completion.

Referensi

slm
sumber
silakan lihat edit saya. Saya tidak punya lsdi bash_completionfile konfigurasi saya . Sepertinya ada fungsi _filediryang mencantumkan file.
Martin Vegter