pengantar
Pertanyaan saya muncul dari perlunya memahami mengapa saya sekarang (setelah beberapa percobaan) Terminal dan tmux mendukung 256 warna dan tput colors
mengatakan kepada saya hanya ada 8 dari mereka.
Latar Belakang
Mari kita mulai dari awal.
Saya menggunakan kotak Ubuntu , Guake , tmux , Vim dan saya suka tema Solarized . Mereka terlihat sangat mengerikan, jadi saya memutuskan untuk mengaktifkan dukungan 256 warna dan sedikit bermain-main.
Mari kita lihat apa yang terjadi pada Terminal saya . tput colors
mengatakan ada 8 warna. Saya pribadi mengaturnya menjadi ungu, di sebelah kiri, dan tentu saja di sebelah kanan kita memiliki 2 warna biru yang berbeda. $TERM
kata xterm
. (Untuk memiliki warna ls
saya eval
ini di .bashrc
.)
Vim juga terlihat baik-baik saja, meskipun saya menyebutnya dengan 256
bendera di lingkungan di mana 256 warna tidak didukung.
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
Satu-satunya pria yang mengeluh tentang ruang warna berkurang adalah tmux . Memanggil tmux
memberikan hasil yang diharapkan "salah".
Tetapi memanggil tmux
dengan -2
bendera membuat semuanya bekerja dengan baik, secara ajaib .
Sekarang satu-satunya hal yang saya mengerti adalah yang -2
setara dengan export TERM=screen-256color
( sumber ).
Guake berperilaku analog dengan Terminal dan keduanya menjawab xterm
pertanyaan itu echo $TERM
.
Pertanyaan
Pada dasarnya, adakah yang mengerti mengapa semuanya bekerja bahkan jika tidak?
- Apakah saya sadis bahwa saya mengeluh mengapa sesuatu bekerja? Mungkin.
- Apakah ada alasan yang lebih baik? Tentu: Saya ingin memperbaiki tampilan kotak Ubuntu lainnya di kantor saya, dan saya ingin memahami mengapa semuanya bekerja atau tidak.
Eksperimen tambahan
Menjalankan skrip ini (sedikit dimodifikasi) pada saya xterm
memberikan hasil berikut: 256 warna, tetapi hanya 16 yang ditampilkan dengan benar.
Kemudian, mengubah profil terminal, juga 16 warna ini berubah.
Tes lebih lanjut mengikuti.
Dari kiri ke kanan, atas ke bawah, kami memiliki tema warna Terpolarisasi , dircolor
ansi-dark
dan 256dark
, kemudian skema warna default ( Tango ), dircolor
ansi-dark
dan 256dark
.
Pengamatan : secara teori skema warna dircolor
ansi-dark
on Solarized harus cocok dengan dircolor
256dark
. Ini tidak jelas terjadi untuk file yang terdaftar spesifik. Sebaliknya, ini cukup terjadi ketika di direktori kerja ada folder , file teks dan tautan simbolik . Kesimpulan : tidak banyak perhatian yang dibayarkan saat mengkode 256dark
warna.
Kesimpulan awal
xterm
mendukung 256 warna, terlepas dari apa yang tput colors
dikatakan. Program dapat merujuk pada ansi
palet (dapat disesuaikan oleh pengguna) atau menentukan warna mereka, memilih dari total 256 warna.
tput colors
adalah tes yang tidak dapat diandalkan. Bisakah Anda memeriksa kesimpulan awal saya ?
tput colors
hanya dapat mengembalikan satu nilai dan di terminal yang mendukung 2,8,16,88 atau 256 warna, hanya nilai pertama (8 dalam kasus Anda) yang dikembalikan. Untuk mendapatkan nilai sebenarnya, gunakan skrip dari komentar terakhir saya. Apa yang kembali?