У меня та же проблема, что и у спрашивающего вПоддержка 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