Vim-Farbschema funktioniert nicht in tmux

1537
niko

Ich verwende konsole-4.14.3, tmux-2.6, vim-7.4.1938und meine Shell bash ist. Außerhalb von tmux funktioniert mein vim-Farbschema einwandfrei. Innerhalb von tmux sind die Farben jedoch völlig unterschiedlich. Ich weiß, was das Problem ist, weiß aber nicht, wie ich es lösen soll.

Der Standardwert $TERMfür mein Terminal ist xterm. Wenn ich hinzufüge

set -g default-terminal screen-256color set -g terminal-overrides ',screen-256color:Tc' 

für mich ~/.tmux.confund export TERM=screen-256colorfür mich ~/.bashrcfunktionieren vim-farben in tmux einwandfrei. TERMWenn Sie den Wert von ändern, wird der Zeilenumbruch jedoch so eingestellt, dass er sowohl außerhalb als auch innerhalb von tmux nicht mehr funktioniert.

Wie soll ich das beheben?

2
"TERM = xterm" beschreibt ein Terminal, das 8 (16) Farben unterstützt, wohingegen "TERM = screen-256color" ein Terminal mit 256 Farben beschreibt. Kein Wunder, dass "vim" ein anderes Farbschema auswählt, wenn es verschiedene Terminalfähigkeiten sieht. Da Sie die Einstellung innerhalb von tmux bevorzugen, setzen Sie TERM = xterm-256color` außerhalb (direkt in `konsole`; ich glaube, dies ist auch die Standardeinstellung von neueren` konsole`-Versionen), und lassen Sie `TERM = screen- 256color` in `tmux`, wie Sie es bereits haben. egmont vor 7 Jahren 0

1 Antwort auf die Frage

2
niko

Ich habe eine Lösung gefunden. Ich habe die Zeilen in ~/.tmux.confdiesem Terminal entfernt, screen-256colordamit tmuxder Standard ausgewählt wird. Ich habe $TERMmich in meinem ~/.bashrcoder anderswo NICHT verändert . Dann habe ich mit tmux angefangen, mit tmux -2dem er 256 Farben verwenden muss. Vergewissern Sie sich, dass Sie Ihre Konfiguration mit :source-file ~/.tmux.confdem Terminal beziehen und das Terminal neu starten. Manuelles Einstellen von tmux auf screen-256coloroder xterm-256colorfunktionierte für mich nicht, da Zeilenumbrüche nicht mehr funktionieren. Obwohl mein Standardwert $TERMwar xterm, würde konsole immer noch 256 Farben unterstützen.