Bagaimana cara mendapatkan penyelesaian tab berwarna?
17
Apakah ada cara untuk mendapatkan keluaran berwarna saat menggunakan penyelesaian tab di terminal? Warna saya baik-baik saja di tempat lain, jadi saya tahu saya telah berhasil mengaktifkan terminal warna.
Bagaimana Anda menentukan "keluaran berwarna saat menggunakan penyelesaian tab"?
slhck
Jawaban:
21
Tidak ada fasilitas dalam Bash untuk mewarnai keluaran selama penyelesaian karena ada ikan dan zsh. Seseorang dapat menulis fungsi penyelesaian yang menghasilkan urutan kontrol warna, tetapi Anda harus mempertahankan salinan dari penyelesaian yang diusulkan dengan dan tanpa kode warna atau menghapusnya ketika pengguna membuat pilihan karena Bash menggunakan pilihan secara langsung secara normal dan kode warna akan menghalangi.
Jika ini adalah fitur penting untuk Anda, saya sarankan Anda mempertimbangkan untuk menggunakan zsh.
Memperbarui
Bash 4.3 readline menambahkan variabel yang memungkinkan warna untuk penyelesaian tab untuk menampilkan warna berbeda untuk file yang dapat dieksekusi, direktori, dll., Selama penyelesaian tab:
colored-stats
Readline di Bash 4.4 mendatang menambahkan variabel yang memungkinkan warna untuk menunjukkan bagian yang cocok dari string selama penyelesaian tab.
colored-completion-prefix
Anda dapat melihat nilai-nilai variabel ini menggunakan
bind -v | grep color
Untuk mengaturnya, tambahkan baris ke ~/.inputrcfile Anda seperti:
@Ryan: Zsh cukup kompatibel dengan Bash. Anda mungkin akan menemukan peralihan menjadi cukup mudah. Ini memiliki banyak fitur canggih yang tidak dimiliki Bash (atau Anda harus menggunakan utilitas eksternal untuk). Hanya ada beberapa hal yang berbeda secara mendasar. Contohnya adalah bahwa indeks array berbasis satu dan bukan berbasis nol, tetapi ada pengaturan yang memengaruhi itu. Saya hanya menggunakan zsh sesekali.
Dijeda sampai pemberitahuan lebih lanjut.
1
@AstroFloyd: Dari Bash Manua : "Definisi warna diambil dari nilai LS_COLORSvariabel lingkungan." Dokumentasi untuk variabel itu ada di sini . Tidak ada pengaturan untuk manhalaman, jadi Anda harus melihat di mana Anda LS_COLORSakan ditetapkan dan menemukan kombinasi warna yang sesuai dan mengubahnya. Di sistem saya, mannama halaman tidak akan diwarnai ketika tab selesai (dan rusak symlink, sementara merah-ke-abu-abu di lsoutput, ...
Dijeda sampai pemberitahuan lebih lanjut.
1
... berwarna biru muda seperti symlink yang valid selama penyelesaian tab).
Dijeda sampai pemberitahuan lebih lanjut.
1
@AndyCarlson: Apakah bind -v | grep colormenunjukkan keduanya set colored-completion-prefix ondan set colored-stats on? Jika demikian, apa yang terjadi ketika Anda mengetik huruf a diikuti dengan menekan tab dua kali? Jika Anda telah menambahkan pengaturan ke ~/.inputrctetapi Anda belum memulai terminal baru atau belum dijalankan re-read-init-filedengan menekan control-x control-r maka pengaturan tidak akan berlaku.
Dijeda sampai pemberitahuan lebih lanjut.
2
@AndyCarlson Apa itu output pada bash prompt ketika Anda menekan ctrl-x ctrl-v?
Dijeda sampai pemberitahuan lebih lanjut.
3
Aku tidak tahu tentang warna penyelesaian untuk opsi perintah dan argumen tapi untuk nama file dan direktori, menurut ( /unix//a/133866 ) menyatakan user495470 bahwa dalam Bash 4.3 dan kemudian Anda dapat menambahkan set colored-stats onuntuk ~/.inputrcmendapatkan berwarna selesai saat Anda melakukannya ls <tab>.
Jawaban:
Tidak ada fasilitas dalam Bash untuk mewarnai keluaran selama penyelesaian karena ada ikan dan zsh. Seseorang dapat menulis fungsi penyelesaian yang menghasilkan urutan kontrol warna, tetapi Anda harus mempertahankan salinan dari penyelesaian yang diusulkan dengan dan tanpa kode warna atau menghapusnya ketika pengguna membuat pilihan karena Bash menggunakan pilihan secara langsung secara normal dan kode warna akan menghalangi.
Jika ini adalah fitur penting untuk Anda, saya sarankan Anda mempertimbangkan untuk menggunakan zsh.
Memperbarui
Bash 4.3 readline menambahkan variabel yang memungkinkan warna untuk penyelesaian tab untuk menampilkan warna berbeda untuk file yang dapat dieksekusi, direktori, dll., Selama penyelesaian tab:
Readline di Bash 4.4 mendatang menambahkan variabel yang memungkinkan warna untuk menunjukkan bagian yang cocok dari string selama penyelesaian tab.
Anda dapat melihat nilai-nilai variabel ini menggunakan
Untuk mengaturnya, tambahkan baris ke
~/.inputrc
file Anda seperti:sumber
LS_COLORS
variabel lingkungan." Dokumentasi untuk variabel itu ada di sini . Tidak ada pengaturan untukman
halaman, jadi Anda harus melihat di mana AndaLS_COLORS
akan ditetapkan dan menemukan kombinasi warna yang sesuai dan mengubahnya. Di sistem saya,man
nama halaman tidak akan diwarnai ketika tab selesai (dan rusak symlink, sementara merah-ke-abu-abu dils
output, ...bind -v | grep color
menunjukkan keduanyaset colored-completion-prefix on
danset colored-stats on
? Jika demikian, apa yang terjadi ketika Anda mengetik huruf a diikuti dengan menekan tab dua kali? Jika Anda telah menambahkan pengaturan ke~/.inputrc
tetapi Anda belum memulai terminal baru atau belum dijalankanre-read-init-file
dengan menekan control-x control-r maka pengaturan tidak akan berlaku.Aku tidak tahu tentang warna penyelesaian untuk opsi perintah dan argumen tapi untuk nama file dan direktori, menurut ( /unix//a/133866 ) menyatakan user495470 bahwa dalam Bash 4.3 dan kemudian Anda dapat menambahkan
set colored-stats on
untuk~/.inputrc
mendapatkan berwarna selesai saat Anda melakukannyals <tab>
.sumber