Ich habe einen sauber installierten Mac mit OS X 10.11.4.
Ich habe iTerm 2 installiert und für die Verwendung von oh-my-zsh eingerichtet.
Ich versuche, ein Thema für mein iTerm einzurichten. Ich versuche das avit-Thema zu verwenden.
Aber was ich bekomme ist:
Vim ist auch verletzt, ich erwarte:
Was ich bekomme:
Hier sind meine Vorlieben:
Ich habe mit dem Report Terminal Type herumgespielt, aber dies ist derjenige, der am besten funktioniert, da die anderen noch schlechter dran sind.
Mein .zshrc sieht folgendermaßen aus:
http://pastebin.com/ixe72yjP
Beachten Sie, dass auf dem Pastebin das Kardan-Thema steht, es jedoch mit keinem Thema funktioniert
BEARBEITEN
Es scheint, als würden die Farben von iTerm die in den Themen definierten Farben überschreiben. Ist das erwartetes Verhalten?
Antworten:
Hier arbeiten zwei Ebenen mit Einstellungen / Themen:
Das Terminal oder Terminalemulator, in Ihrem Fall iTerm2
Je nach Terminal wird nur eine begrenzte Farbpalette unterstützt. "Traditionell" gab es 16 Farben: 8 Normal und 8 Hell / Hell. Ihnen wird der Code 0 bis 7 bzw. 8 bis 15 zugewiesen. Sie haben auch Namen mit den Codes
n
undn+8
dem gleichen Namen:0
und8
: schwarz1
und9
: rot2
und10
: grün3
und11
: gelb4
und12
: blau5
und13
: Magenta6
und14
: Cyan7
und15
: weißObwohl die Namen gut definiert sind, sind die genauen Farbwerte selbst in den Standardeinstellungen für verschiedene Terminals nicht und variieren stark. (Beispiele finden Sie im Abschnitt Farben auf der Wikipedia-Seite zum ANSI-Escape-Code. ) Bei den meisten Terminalemulatoren können diese 16 Farben vom Benutzer frei konfiguriert werden (siehe Registerkarte " Farben" in den iTerm-Einstellungen).
Viele (wenn nicht die meisten) modernen Terminalemulatoren unterstützen eine 256-Farben-Palette, die aus den oben genannten 16 Farben, 216 Farben auf einem 6 x 6 x 6 RGB-Farbwürfel und 32 Graustufenfarben besteht. Abgesehen von den ersten 16 Farben scheinen diese Farben für die meisten Terminalemulatoren gleich zu sein (siehe meine Antwort auf eine diesbezügliche Frage zu SO für weitere Details).
Es gibt sogar eine wachsende Unterstützung für 24-Bit-Echtfarben. Nach diesem Gist iTerm2 unterstützt dies bereits in der Beta - Builds. (Sie können dies mit überprüfen
for a in {0..255}; printf "\x1b[48;2;255;${a};0m \x1b[0m"
. Es sollte einen glatten Farbverlauf von rot nach gelb drucken.)Kurz gesagt : Ein Terminal- Thema ( iTerm2 ) ist nur eine Farbpalette, die Indizes auf Echtfarben-RGB-Werte abbildet. Einige Terminals (zumindest unter Linux; ich kenne insbesondere OS X und iTerm2 nicht ) implementieren tatsächlich umschaltbare Farbthemen .
Die Shell oder Anwendung, in Ihrem Fall
zsh
mit dem Konfigurationsframework oh-my-zsh undvim
:Da 24-Bit-Echtfarben noch nicht weit verbreitet sind, setzen Themen Farben normalerweise anhand der Indexnummer auf der Terminalpalette oder sogar anhand des Namens. Zum Beispiel
print -P
interpretiert den String wie in der Eingabeaufforderung.%F
ändert die Vordergrundfarbe.Obwohl die meisten Terminals 256 Farben unterstützen, gibt es immer noch einige Themen, die nur (die ersten) 16 Farben verwenden. Dafür gibt es mehrere Gründe:
Das heißt nicht, dass es im Gegenteil keine Themen gibt, die 256 Farben verwenden. Ich scheine nur, dass derjenige, den Sie gewählt haben, keiner von ihnen ist.
Kurz gesagt : Ein Terminal- (oder Anwendungs-) Thema kann nur Farbcodes zuweisen, nicht RGB-Echtfarbenwerte. Die tatsächlichen Farben hängen von den Terminaleinstellungen ab. Wenn die Farbe im Terminal geändert wird, wirkt sich dies auf alle darin ausgeführten Anwendungen aus.
Der Unterschied zwischen den Screenshots des erwarteten Ergebnisses und dem, was Sie tatsächlich erhalten, ist auf die unterschiedlichen Farbeinstellungen der Terminals zurückzuführen. Um dies zu lösen, können Sie:
quelle
vim
sondern inzsh
. Sicherlich brauchen wir keine Beta-Version von iTerm2 mehr?