vim в tmux цвет фона меняется при подкачке - PullRequest
36 голосов
/ 21 июня 2011

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

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

image

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

image

Спасибо!

Ответы [ 4 ]

50 голосов
/ 26 февраля 2013

Как объяснено здесь , отключите Стирание фонового цвета (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
17 голосов
/ 10 октября 2011

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

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

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

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

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

...
set term=screen-256color
...
8 голосов
/ 21 июня 2011

Это похоже на проблему с вашим значением термина или terminfo.

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

0 голосов
/ 17 июня 2016

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

Соответствующий выпуск: 804

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...