vim в tmux цвет фона меняется при подкачке

Я использую vim в 256-цветном режиме на Solaris (подключен через Putty на Windows). Все выглядит отлично и отлично работает вне tmux, но в tmux цвет фона периодически меняется при листании / прокрутке файла.

Вот как это должно выглядеть:

Вот как это выглядит после постраничного просмотра:

Спасибо!

4 ответа

Решение

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

По приведенной выше ссылке BCE можно установить в.vimrc, добавив следующее

if &term =~ '256color'
    " disable Background Color Erase (BCE) so that color schemes
    " render properly when inside 256-color tmux and GNU screen.
    " see also http://snk.tuxfamily.org/log/vim-256color-bce.html
    set t_ut=
endif

Добавляя альтернативное решение, я сам столкнулся с этой проблемой и только решил ее. У меня было правильное значение TERM, там был файл terminfo и т. Д., Но фон все равно можно было бы рисовать только за ячейками, которые содержали печатаемые символы, или ячейками слева от них.

Если вы часто переключаетесь между GUI vim и CLI vim, возможно, вы добавили что-то подобное в свой .vimrc файл в какой-то момент:

if !has("gui_running")
    set term=xterm
endif

(Или действительно любое переопределение всей переменной TERM в пределах .vimrc )

Измените переопределение терминала на screen-256color.

...
set term=screen-256color
...

Это похоже на проблему с настройкой вашего термина, или terminfo.

Убедитесь, что ваш термин в tmux TERM=screen-256color и что ваша коробка соляриса имеет правильную terminfo.

Эта ошибка исправлена ​​в патче vim 7.4 7.4.1942

Актуальная проблема: 804

Другие вопросы по тегам