tmux, Vim und Solarized

19

Lokal

Beim Stöbern in tmux , Vim und Solarized kann ich viele Beschwerden über 256 Farben und "Benutzererfahrung" feststellen. Nun, ich habe das gegenteilige "Problem", dh Vim funktioniert gut mit einem voll solarisierten Thema nur in tmux .

Hintergrund

Ich habe jetzt eine Weile mit dem Farbschema meines Ubuntu- Terminals und von Guake gearbeitet und bin fast an die Perfektion gekommen, die erreicht wird, wenn ich tmux verwende , was wiederum immer bedeutet. Ich versuche jetzt zu verstehen, warum das passiert.

Hier unten gibt es zwei Terminals, auf dem einen wird nur Vim ausgeführt (wobei der aktuelle angezeigt wird.vimrc ), während auf dem anderen Vim in einer tmux- Sitzung ausgeführt wird. Wie Sie sehen können, sind die Schriften nur in der tmux- Sitzung fett gedruckt , was ich richtig finde (oder nicht?).

Bildbeschreibung hier eingeben

Frage

Warum erlaubt tmux Fettdruck, während das Terminal, auf dem tmux läuft, dies nicht tut? Ist es ein Fehler oder eine Funktion?

Atcold
quelle
Was ist die Ausgabe von echo $TERMIn und Out tmux?
Jasonwryan
tmux sagt, screenwährend terminal sagt xterm:)
Atcold
@jasonwryan lesen Sie den andere Frage des OP hier und Antwort Gilles zu einem ähnlichen hier . Anscheinend $TERMist das nicht relevant.
Terdon
@terdon es ist in diesem Fall wichtig: tmux erfordert, dass der Begriff auf screen (oder eine Variante) gesetzt ist und xterm standardmäßig ein 8-Farben-Begriff ist. Deshalb sieht das OP den Unterschied.
Jasonwryan
xterm*termName: xterm-256color~/.Xresources
Geben

Antworten:

22

Kurze Antwort

Es ist ein Fehler.

Volle Antwort

Es sieht aus wie die „richtige“ Visualisierung der auf der linken Seite, wo die Fettschrift wird nicht gemacht. Für das, was ich verstehen konnte ( hier ist die Referenz), wurde das Fett-Attribut ursprünglich verwendet, um die hervorgehobene Version der 8 Grundfarben festzulegen.

In der Vergangenheit gab es eine Eins-zu-Eins-Entsprechung zwischen den fett gedruckten Versionen der 8 Standard-ANSI-Farben und den hellen Versionen der 8 Standardfarben. Früher, als ein Farbprogramm die Anzeige von fettem Text verlangte, war es für Terminalemulatoren wahrscheinlich einfacher, eine hellere Version der Textfarbe anzuzeigen (und der Benutzer sollte dies als fett interpretieren), als ein Schrift mit einem mutigen Gewicht.

Grundsätzlich geschieht hier Folgendes: Um die vollständige Palette Solarized (Solarisiert) mit Orange , Lila und allen Graustufen zu nutzen , werden die Farben mit dem Fett-Attribut bezeichnet , das sich wiederum auf die alternativen 8 Farben von bezieht ANSI-Palette.

Terminal versteht dies richtig und zeigt im normalen Schriftsatz das Orange und den Kommentar grau an , während tmux ihnen eine unnötig fett gedruckte Schrift hinzufügt . Zusammenfassend ist die linke Seite korrekt, die rechte nicht.

Frage 2

Gibt es eine Möglichkeit , die Fettdarstellung von tmux zu deaktivieren ?
Ich muss noch einige Nachforschungen anstellen und werde diese Antwort aktualisieren, sobald ich etwas finde.

Antwort 2

Und hier haben wir die Lösung! :)

Damit sich tmux korrekt verhält, müssen wir es so nennen, dass wir uns in einer 256-Farben-fähigen Umgebung befinden.

TERM=xterm-256color /usr/bin/tmux

Der Einfachheit halber könnten wir aliasdies (dh Sie ergänzen alias tmux="<the line above>"Ihr ~/.bashrc).

tmux interpretiert die nicht fettgedruckten "fett-alternativen" Farben korrekt

Das Aufrufen von tmuxas tmux -2, um zu erzwingen, dass tmux mit 256-Farben-Unterstützung ausgeführt wird (anstatt die TERMUmgebungsvariable neu zu definieren), ermöglicht keine korrekte Interpretation der "fett-alternativen" 8 Farben (dh die hellere Variante führt auch zu einem fett gesetzten Text). Aus diesem Grund empfehle ich dringend, die oben beschriebene Lösung zu verwenden, um sowohl eine korrekte 256-Farben-Interpretation als auch nicht fettgedruckte "Fett-Alternativ" -Farben zu erhalten.

Atcold
quelle
Viel Liebe Mann !!
Shxfee