vim backgroundcolor in tmux - wie man zsh zwingt, screen anstelle von xterm in tmux zu verwenden

1

Ich habe das gleiche Problem wie der Fragesteller in 256-Farben-Unterstützung für vim Hintergrund in tmux .

In meinem normalen Terminal mit habe zshich keine Probleme mit der Hintergrundfarbe vim, aber wenn ich es drinnen laufen lasse, tmuxtreten Probleme mit den Hintergrundfarben auf.

Anscheinend gibt es ein Problem mit der Verwendung screenanstelle von xterm:

Außerhalb von Tmux: echo $TERMErgebnisse in screen
Innerhalb von Tmux: echo $TERMErgebnisse inxterm

In meiner .zshrc und .tmux.conf habe ich eingestellt

TERM=screen-256color

aber es bewirkt nichts. (Ich habe es auch versucht TERM=screen)

Wie kann ich tmuxdie Verwendung erzwingen screen?

EDIT: dank htor habe ich in .tmux.conf und in .zshrc hinzugefügt set -g default-terminal "screen"(auch ausprobiert set -g default-terminal "screen-256color") export TERM=screen-256color.

Jetzt bekomme ich:

Outside Tmux: echo $TERMergibt screen-256color
Inside Tmux: echo $TERMergibt echoscreen-256color(<- sieht ein bisschen komisch aus, stimmt die Ausgabe?)

Was kann ich noch tun, um das Problem mit der Hintergrundfarbe in vim inside tmux zu lösen?

StandardNerd
quelle

Antworten:

1

Deaktivieren Sie, wie hier erläutert , das Löschen der Hintergrundfarbe ( Background Color Erase, BCE), indem Sie die t_utTerminaloption deaktivieren ( :set t_ut=in Vim ausführen und dann Control+ drücken L, um die Anzeige des Terminals zu aktualisieren), damit die Farbschemata ordnungsgemäß funktionieren, wenn Vim im tmux- und GNU-Bildschirm verwendet wird.

Sunaku
quelle
1

So legen Sie die Standard-Terminalvariable für " tmuxÄndern .tmux.confin" fest:

set -g default-terminal "screen"

Die Shell-Syntax zum Setzen von Variablen funktioniert nicht .tmux.conf. In Ihrem .zshrcsollten Sie den Wert von exportieren TERM, um sicherzustellen, dass alle Shells diesen Wert in Ihrer Umgebung übernehmen:

export TERM=screen-256color

quelle
Danke htor, mit deinem rat bekomme ich jetzt mit echo $ TERM innerhalb und außerhalb von tmux "screen-256color". Das Problem mit den Hintergrundfarben in tmux bleibt jedoch bestehen. Was kann ich noch tun, um dieses ärgerliche Problem loszuwerden (ich benutze tmux und vim viel)?
StandardNerd
@Lennier Hast du versucht xtermals TERMWert und screenin zu verwenden tmux? Können Sie eine Pastete von Ihrer .vimrcin Ihrer Frage posten ?