introduzione
La mia domanda nasce dalla necessità di capire perché ora ho (dopo più prove) Terminal e tmux che supportano 256 colori e tput colors
mi dicono che ce ne sono solo 8.
sfondo
Cominciamo dall'inizio.
Sto usando una scatola Ubuntu , Guake , tmux , Vim e adoro il tema Solarized . Sembravano orribili, quindi ho deciso di abilitare il supporto a 256 colori e giocare un po '.
Vediamo cosa succede per il mio terminale . tput colors
dice che ci sono 8 colori. Personalmente li imposto sul viola, a sinistra, e ovviamente a destra abbiamo 2 diverse tonalità di blu. $TERM
dice xterm
. (Per avere l' ls
io colorato eval
questo nel mio .bashrc
.)
Anche Vim ha un bell'aspetto, nonostante il fatto che io lo chiami con la 256
bandiera in un ambiente in cui 256 colori non sono supportati.
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
L'unico ragazzo che si lamenta dello spazio cromatico ridotto è tmux . La chiamata tmux
fornisce i risultati previsti "errati".
Ma chiamare tmux
con la -2
bandiera fa funzionare tutto bene, magicamente .
Ora l'unica cosa che capisco è che -2
è equivalente a export TERM=screen-256color
( fonte ).
Guake si comporta in modo analogo a Terminal ed entrambi rispondono xterm
alla domanda echo $TERM
.
Domanda
Fondamentalmente, qualcuno capisce perché tutto funziona anche se non dovrebbe?
- Sono sadico di lamentarmi perché le cose funzionano? Può essere.
- C'è una ragione migliore? Certo: vorrei correggere l'aspetto di altre scatole di Ubuntu nel mio ufficio e vorrei capire perché le cose funzionano o non funzionano.
Esperimenti aggiuntivi
L'esecuzione di questo script (leggermente modificato) su my xterm
fornisce il seguente risultato: 256 colori, ma solo 16 vengono visualizzati correttamente.
Quindi, cambiando il profilo del terminale, cambiano anche questi 16 colori.
Altri test stanno seguendo.
Da sinistra a destra, dall'alto verso il basso, abbiamo il tema del colore Solarizzatodircolor
ansi-dark
e 256dark
, quindi, la combinazione di colori predefinita ( Tango ) dircolor
ansi-dark
e 256dark
.
Osservazione : in teoria la combinazione di colori dircolor
ansi-dark
su Solarized dovrebbe corrispondere strettamente alla dircolor
256dark
. Ciò non sta chiaramente accadendo per i file elencati specifici. Invece, questo accade abbastanza quando nella directory di lavoro ci sono cartelle , file di testo e collegamenti simbolici . Conclusione : non è stata prestata molta attenzione alla codifica dei 256dark
colori.
Conclusioni preliminari
xterm
supporta 256 colori, nonostante ciò che tput colors
dice. I programmi possono fare riferimento alla ansi
tavolozza (personalizzabile dall'utente) o definirne i colori, scegliendo tra un totale di 256 colori.
tput colors
è un test inaffidabile. Potresti controllare le mie conclusioni preliminari ?
tput colors
può restituire solo un valore e nei terminali che supportano 2,8,86,88 o 256 colori, viene restituito solo il primo valore (8 nel tuo caso). Per ottenere il vero valore usa lo script dal mio ultimo commento. Cosa ritorna?