Vim 256 цвет странное поведение с Tmux
Просто небольшая интересная проблема, с которой я столкнулся в терминалах. Я использую vim внутри gnome-терминала. Мне нравится иметь 256 цветов, поэтому мне не нужно использовать gVIM.
Мои соответствующие настройки.zshrc:
export TERM=xterm-256color
Мои соответствующие настройки.vimrc:
if $COLORTERM == 'gnome-terminal'
set t_Co=256
endif
Из этого показа вы заметите, в чем проблема: http://showterm.io/06460aeb043cac4bd0256
Я получаю странный цвет фона с tmux vim. Любая помощь в этом была бы отличной.
2 ответа
Это просто быстрое расследование.
- после выполнения tmux внутри gnome-termnial, "COLORTERM" будет перезаписан. Это означает, что $COLORTERM имеет значение NULL внутри tmux.
Поток этих переменных.
- gnome-терминал запускается и загружает ваш.zshrc. (TERM=xterm-256color COLORTERM = гном-терминал)
- Tmux начинается. (он перезаписывает COLORTERM, загружает его конфигурацию "default-Terminal" в качестве значения TERM)
- tmux load.zshrc (TERM переписывается в "xterm-256color")
- Сейчас => TERM = "xterm-256color" COLORTERM = ""
- vim начинается => (помимо вашей конфигурации.vimrc t_Co устанавливается в 256, если термин 256 цветов)
Проблема в том, что tmux правильно поддерживает 256 цветов, только если TERM="screen-256color" вместо "xterm-256color".
Ниже приведено решение:
Во-первых, добавьте это в ваш.zshrc (я использую синтаксис bash):
if [[ $COLORTERM == 'gnome-terminal" ]]; then
export TERM="xterm-256color"
fi
Во-вторых, добавьте это в ваш "~/.tmux.conf":
set -g default-terminal screen-256color
Последнее, настройки vim не нужны.
Любые дополнительные вопросы, пожалуйста, прокомментируйте.
Попробуйте следующее. Это сработало для меня:
.tmux.conf
set -g default-terminal "screen-256color"
Кроме того, удалить старый term
значение для .vimrc