1

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

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

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

Вне Tmux: результаты echo $TERM на screen
Внутри Tmux: echo $TERM приводит к xterm

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

TERM=screen-256color

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

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

РЕДАКТИРОВАТЬ: благодаря 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?

2 ответа2

1

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

set -g default-terminal "screen"

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

export TERM=screen-256color
1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .