pengantar
Pertanyaan saya muncul dari perlunya memahami mengapa saya sekarang (setelah beberapa percobaan) Terminal dan tmux mendukung 256 warna dan tput colorsmengatakan 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 colorsmengatakan ada 8 warna. Saya pribadi mengaturnya menjadi ungu, di sebelah kiri, dan tentu saja di sebelah kanan kita memiliki 2 warna biru yang berbeda. $TERMkata xterm. (Untuk memiliki warna lssaya eval ini di .bashrc.)

Vim juga terlihat baik-baik saja, meskipun saya menyebutnya dengan 256bendera 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 tmuxmemberikan hasil yang diharapkan "salah".

Tetapi memanggil tmuxdengan -2bendera membuat semuanya bekerja dengan baik, secara ajaib .

Sekarang satu-satunya hal yang saya mengerti adalah yang -2setara dengan export TERM=screen-256color( sumber ).
Guake berperilaku analog dengan Terminal dan keduanya menjawab xtermpertanyaan 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 xtermmemberikan 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-darkdan 256dark, kemudian skema warna default ( Tango ), dircolor ansi-darkdan 256dark.

Pengamatan : secara teori skema warna dircolor ansi-darkon 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 256darkwarna.
Kesimpulan awal
xtermmendukung 256 warna, terlepas dari apa yang tput colorsdikatakan. Program dapat merujuk pada ansipalet (dapat disesuaikan oleh pengguna) atau menentukan warna mereka, memilih dari total 256 warna.
tput colorsadalah tes yang tidak dapat diandalkan. Bisakah Anda memeriksa kesimpulan awal saya ?
tput colorshanya 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?
silakan klik kanan / lihat gambar untuk memeriksa dengan resolusi penuh
peta referensi dircolors "terdegradasi" terlarutkan