vim-Hintergrundfarbe in tmux - wie zwingt man zsh, in tmux screen statt xterm zu verwenden

vim-Hintergrundfarbe in tmux - wie zwingt man zsh, in tmux screen statt xterm zu verwenden

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

In meinem normalen Terminal mit zshhabe ich keine Probleme mit der Hintergrundfarbe in vim, aber wenn ich es in ausführe tmux, treten Probleme mit den Hintergrundfarben auf.

Offenbar besteht ein Problem bei der Verwendung von screenanstelle von xterm:

Außerhalb von Tmux: echo $TERMergibt screen
Innerhalb von Tmux: echo $TERMergibtxterm

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

TERM=screen-256color

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

Wie kann ich tmuxdie Verwendung erzwingen screen?

BEARBEITEN: Danke an htor, ich habe es set -g default-terminal "screen"(auch versucht set -g default-terminal "screen-256color") in .tmux.conf und in .zshrc hinzugefügt export TERM=screen-256color.

Jetzt bekomme ich:

Außerhalb von Tmux: echo $TERMergibt screen-256color
Innerhalb von Tmux: echo $TERMergibt echoscreen-256color(<- sieht ein bisschen komisch aus, ist die Ausgabe korrekt?)

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

Antwort1

Wie hier erklärt, deaktivierenHintergrundfarbe löschen(BCE) durch Löschen der t_utTerminaloption ( :set t_ut=in Vim ausführen und dann Control+ drücken L, um die Anzeige des Terminals zu aktualisieren), damit Farbschemata ordnungsgemäß funktionieren, wenn Vim innerhalb von tmux und GNU Screen verwendet wird.

Antwort2

tmuxSo legen Sie die Standardterminalvariable fest .tmux.conf:

set -g default-terminal "screen"

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

export TERM=screen-256color

verwandte Informationen