Wie bekomme ich das solarisierte Farbschema mit Gnome-Terminal, TMUX und VIM?

25

Es gibt viele Fragen dazu, aber das liegt daran, dass es so viele Variablen gibt. Ich musste Anweisungen von vielen Seiten zusammenstellen, bevor ich das zum Laufen brachte.

Erstens konnte ich die 16 solarisierten Farbdefinitionen im Gnome-Terminal nicht einfach einrichten (ich habe es von Hand gemacht / nur geklickt, um zu erkennen, dass ich die Reihenfolge / Zuordnung nicht korrekt hatte). Sobald ich feststellte, dass ich weitergezogen bin ...

Dann hatte ich solarisierte Farben, die in vim OK-Stil arbeiteten, aber es gab einige seltsame schwarze Hintergründe, die in bestimmten Hervorhebungen auftauchten. Nachdem ich das behoben hatte, ging ich weiter ...

Dann wurde mir klar, dass vim v. Dies wird massiv diskutiert, aber nur sehr wenige der Antworten (die meistens sagen über die Einstellung TERMzu xterm-256colors) arbeitete für mich. Das habe ich schließlich auch behoben.

Solarized ist eine sehr schöne Palette (obwohl ich die dunkelste Grundfarbe abgedunkelt und die hellste aufgehellt habe, da ich den höheren Kontrast bevorzuge und tmux 'Weiß' auf meinem kalibrierten Bildschirm viel zu gelb fand - wahrscheinlich gut auf einem typischen nicht kalibrierten Laptop-Bildschirm, wie sie sind). Normalerweise ist es viel zu blau!), also poste ich diese Frage mit der Antwort, um die Ergebnisse meines Lernens mitzuteilen.

Kunstvollroboter
quelle
Ich verwende xterm-256color (kein GNOME-Terminal), tmux und vim und erinnere mich nicht, dass ich irgendwo in der Nähe dieser vielen Rahmen hindurch springen musste. Das einzige, was ich tun musste, war das Terminal zu solarisieren (xterm verwendet XResources anstelle von Profilen) solarized.vim.
JW013

Antworten:

24

Solarisiert gibt sehr spezifische Farben. Sie können diese Farben in einer 256-Farben-Standardpalette nicht wirklich erzielen . Dies können Sie nur erreichen, indem Sie die genauen Farben in Ihrem Terminal-Emulator festlegen. Die Apps gehen dann davon aus, dass sie nur 16 Standardfarben (8 + 8 Helligkeitsstufen) verwenden, diese wurden jedoch genau auf die Solarized-Palette abgebildet.

Gnome Terminal bietet keine sehr einfache Möglichkeit, Paletten oder Profile zu exportieren / importieren. Sie können dies jedoch mit dem folgenden Bash-Skript tun:

#!/bin/sh
DARK_BG='#000014141A1A'
# original: DARK_BG='#00002B2B3636'
LIGHTEST='#FFFFFBFBF0F0'
# original: LIGHTEST='#FDFDF6F6E3E3'

gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_background" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_colors" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/palette" --type string "#070736364242:#D3D301010202:#858599990000:#B5B589890000:#26268B8BD2D2:#D3D336368282:#2A2AA1A19898:#EEEEE8E8D5D5:$DARK_BG:#CBCB4B4B1616:#58586E6E7575:#65657B7B8383:#838394949696:#6C6C7171C4C4:#9393A1A1A1A1:$LIGHTEST"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/background_color" --type string "$DARK_BG"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/foreground_color" --type string "#65657B7B8383"

Nb. Hier habe ich die dunkelsten und hellsten Farben von Solarized überschrieben. Sie können die Originale wie kommentiert verwenden, wenn Sie möchten.

Gut genug. Installieren Sie nun die Solarized vim colors-Datei, indem Sie diese Datei in platzieren ~.vim/colors/solarized.vim.

Jetzt können Sie Vim anweisen, dieses Farbschema mit zu verwenden colo solarized. Das hat aber nicht ganz geklappt und ich musste Vim sagen, dass er eine 16-Farben-Palette verwenden soll set t_Co=16. Ich habe beide in meine ~/.vimrcAkte gesteckt .

Jetzt funktionierten vim Farben, aber nicht, wenn es in tmux lief.

Das nächste bisschen ist sehr verwirrend. Die meisten Ratschläge sagen über die Einstellung TERMaußerhalb von tmux zu xterm-256colors, aber wenn ich das tat, würde tmux nicht einmal starten. Das hat mich auch verwirrt: Ist die 256-Farben-Palette nicht eine schlechte Annäherung? Nun, es ist verwirrend und auf jeden Fall hat es nicht funktioniert, also brauchte ich einen anderen Weg nach vorne:

Erstellen Sie eine Datei /tmp/foomit:

xterm-16color|xterm with 16 colors,
    colors#16, use=xterm,

Dann installieren Sie diese mit sudo tic /tmp/foo

Zum Schluss noch ein Alias tmuxwie folgt:

alias tmux='TERMINFO=/usr/share/terminfo/x/xterm-16color TERM=xterm-16color tmux -2'

Ich bekomme jetzt genau die richtigen Farben im Terminal, in vim und in vim-inside-tmux. Nb. Die -2Option gibt tmuxan, eine 256-Farben-Palette zu verwenden, was sehr verwirrend ist, da die Umgebungsvariablen es anscheinend anders aussagen ... Ich weiß es wirklich nicht, und ich fürchte, ich möchte das Lernen nicht wirklich verbessern Kurve, weil ich jetzt ein schönes farbiges Terminal habe, das gerade funktioniert.

Kunstvollroboter
quelle
set t_Co=16hat den Trick für mich getan. Vor dem Setzen dieser Option funktionierte die Syntaxbeleuchtung überhaupt nicht.
Koraktor
2
Es ist amüsant, wie viel Arbeit Sie tun müssen, um 16 Farben in einem Texteditor zum Laufen zu bringen!
Hinweis: Ich stelle fest, dass dies in Gnome Terminal 3.18.3 (in Ubuntu 16.04) nicht mehr funktioniert - es scheint, dass die Farben nicht akzeptiert werden und die Verwendung von vims t_Co = 256 bessere Ergebnisse liefert.
Artfulrobot
9

Ich habe auch dieses Projekt gefunden:

https://github.com/sigurdga/gnome-terminal-colors-solarized

Danke für die Tipps :-)

DavidG
quelle
1
Ja ja und ja! Benutze dieses Skript, störe nicht mit all dem Hacken in der akzeptierten Antwort. Das "funktioniert einfach".
LondonRob
Wunderbar! Das ist so viel besser. Vielen Dank.
Wchargin
Bei einigen Installationen funktioniert es. Bei manchen ist es zu blau.
JohnMudd