vim backgroundcolor в tmux - как заставить zsh использовать screen вместо xterm в tmux

vim backgroundcolor в tmux - как заставить zsh использовать screen вместо xterm в tmux

У меня та же проблема, что и у спрашивающего вПоддержка 256 цветов для фона vim в tmux.

В моем обычном терминале с zsh, у меня нет проблем с цветом фона vim, но когда я запускаю его внутри tmux, у меня возникают проблемы с цветами фона.

По-видимому, существует проблема с использованием screenвместо xterm:

Снаружи Tmux: echo $TERMрезультаты screen
Внутри Tmux: echo $TERMрезультатыxterm

В моих .zshrc и .tmux.conf я установил

TERM=screen-256color

но это ни на что не влияет. (Я тоже пробовал TERM=screen)

Как я могу заставить tmuxиспользовать screen?

EDIT: спасибо htor, я добавил set -g default-terminal "screen"(также попробовал set -g default-terminal "screen-256color") в .tmux.conf и в .zshrc export TERM=screen-256color.

Теперь я получаю:

Снаружи Tmux: echo $TERMрезультаты screen-256color
Внутри Tmux: echo $TERMрезультаты echoscreen-256color(<- выглядит немного странно, вывод правильный?)

Что еще можно сделать, чтобы решить проблему с цветом фона в vim внутри tmux?

решение1

Как объяснено здесь, запрещатьСтереть цвет фона(BCE) путем очистки t_utпараметра терминала (запустите :set t_ut=Vim и нажмите Control+ L, чтобы обновить дисплей терминала), чтобы цветовые схемы работали правильно, когда Vim используется внутри tmux и GNU screen.

решение2

Чтобы установить переменную терминала по умолчанию, tmuxизмените ее .tmux.confна:

set -g default-terminal "screen"

Синтаксис оболочки для установки переменных не будет работать в .tmux.conf. В вашей среде .zshrcвам следует экспортировать значение , TERMчтобы убедиться, что все оболочки наследуют это значение:

export TERM=screen-256color

Связанный контент