Einführung
Meine Frage ergibt sich aus der Notwendigkeit zu verstehen, warum ich jetzt (nach mehreren Versuchen) Terminal und tmux habe, die 256 Farben unterstützen und tput colors
mir sagen, dass es nur 8 von ihnen gibt.
Hintergrund
Fangen wir von vorne an.
Ich benutze eine Ubuntu- Box, Guake , tmux , Vim und ich liebe das Thema Solarized . Sie sahen ziemlich schrecklich aus, deshalb habe ich beschlossen, die 256-Farben-Unterstützung zu aktivieren und ein bisschen herumzuspielen.
Mal sehen, was mit meinem Terminal passiert . tput colors
sagt, es gibt 8 Farben. Ich persönlich habe sie links auf lila gesetzt, und natürlich haben wir rechts zwei verschiedene Blautöne. $TERM
sagt xterm
. (Um das farbige ls
ich eval
dies in meinem zu haben .bashrc
.)
Vim sieht auch gut aus, obwohl ich es mit der 256
Flagge in einer Umgebung nenne, in der 256 Farben nicht unterstützt werden.
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
Der einzige Typ, der sich über den reduzierten Farbraum beschwert, ist tmux . Das Aufrufen tmux
liefert die "falschen" erwarteten Ergebnisse.
Aber wenn man tmux
mit der -2
Flagge ruft, funktioniert alles auf magische Weise .
Jetzt verstehe ich nur noch, dass -2
es export TERM=screen-256color
( Quelle ) entspricht.
Guake verhält sich analog zu Terminal und beide beantworten xterm
die Frage echo $TERM
.
Frage
Versteht jemand im Grunde, warum alles funktioniert, auch wenn es nicht sollte?
- Bin ich sadistisch, dass ich mich beschwere, warum die Dinge funktionieren? Vielleicht.
- Gibt es einen besseren Grund? Klar: Ich möchte das Erscheinungsbild anderer Ubuntu-Boxen in meinem Büro korrigieren und möchte verstehen, warum Dinge funktionieren oder nicht funktionieren.
Zusätzliche Experimente
Das Ausführen dieses Skripts (leicht modifiziert) auf meinem xterm
Computer führt zu folgendem Ergebnis: 256 Farben, aber nur 16 werden korrekt angezeigt.
Wenn Sie das Profil des Terminals ändern, ändern sich auch diese 16 Farben.
Weitere Tests folgen.
Von links nach rechts, von oben nach unten, haben wir Solarisation Farbthema, dircolor
ansi-dark
und 256dark
dann default ( Tango ) Farbschema, dircolor
ansi-dark
und 256dark
.
Beobachtung : Theoretisch sollte das Farbschema dircolor
ansi-dark
bei Solarisation genau mit dem bei Solarisation übereinstimmen dircolor
256dark
. Dies ist bei den angegebenen Dateien nicht eindeutig der Fall. Stattdessen passiert dies, wenn sich im Arbeitsverzeichnis Ordner , Textdateien und symbolische Links befinden . Fazit : Beim Kodieren der 256dark
Farben wurde nicht viel beachtet .
Vorläufige Schlussfolgerungen
xterm
unterstützt trotz allem 256 Farben tput colors
. Programme können auf die ansi
Palette verweisen (vom Benutzer anpassbar) oder ihre Farben definieren und aus insgesamt 256 Farben auswählen.
tput colors
ein unzuverlässiger Test ist. Könnten Sie meine vorläufigen Schlussfolgerungen überprüfen ?
tput colors
nur ein Wert zurückgegeben werden kann und in Terminals, die 2,8,16,88 oder 256 Farben unterstützen, nur der erste Wert (in Ihrem Fall 8) zurückgegeben wird. Verwenden Sie das Skript aus meinem letzten Kommentar, um den wahren Wert zu ermitteln. Was bringt das?