Vim не окрашивает конец строк при работе внутри экрана

Когда vim запускается внутри экрана gnu, он не окрашивает фон после текста.

белый фон

Экран выглядит так, как будто он должен правильно настроить 256 цветов:

$ screen $ tput colors 256 $ echo $term xterm-256colors 

OS & Shell Я использую:

 $ cat /etc/redhat-release Red Hat Enterprise Linux WS release 4 (Nahant Update 9) $echo $shell /bin/tcsh 

Тест цвета выглядит так, как будто он работает нормально, за исключением конца строк:

 :runtime syntax/colortest.vim :source % 

VIM цветовой тест внутри экрана

И когда не используется экран:

Тест цвета vim

Есть ли какие-либо другие настройки, которые я должен проверять, есть ли режим экрана, который я могу заставить разрешить правильно перерисовывать цвета?

2 Solutions collect form web for “Vim не окрашивает конец строк при работе внутри экрана”

Частично на основе: tmux-and-screen-256-term-not-supported .

Проблема разрешается при использовании термина «экран». Чтобы правильно определить 256 цветов, это должно быть «screen-256colors». Это приводит к ошибке ниже:

 E558: Terminal entry not found in terminfo 'screen-256colors' not known. Available builtin terminals are: builtin_gui builtin_ansi builtin_xterm builtin_iris-ansi builtin_d 

Чтобы создать запись с экраном-256colors:

 infocmp screen > screen-256color.ti 

Изменение (screen-256color.ti)

 # Reconstructed via infocmp from file: /usr/share/terminfo/s/screen screen|VT 100/ANSI X3.64 virtual terminal, am, km, mir, msgr, xenl, colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64, 

К:

 # Reconstructed via infocmp from file: /usr/share/terminfo/s/screen screen-256color|VT 100/ANSI X3.64 virtual terminal, am, km, mir, msgr, xenl, colors#256, cols#80, it#8, lines#24, ncv#3, pairs#64, 

Теперь создайте terminfo:

 tic screen-256color.ti 

Внутри screen или tmux значение $TERM должно начинаться с screen (например, screen , screen-256color ), а не с xterm .

Текущая проблема возникает из-за различий в возможности стирания bce (background color erase) двух терминалов.

Описание TERM=screen* не содержит этого флага и, соответственно, на screen или tmux «очищает от курсора до конца строки» краска escape-последовательности, которая имеет цвет фона по умолчанию для терминала.

С другой стороны, описания TERM=xterm* содержат этот флаг, и, соответственно, xterm стирает, используя текущий активный цвет фона.

В вашем случае vim неправильно видит, что терминал имеет флаг bce (из-за TERM=xterm* ), и поэтому использует операцию кратковременной очистки, чтобы заполнить текущий активный цвет фона, который будет отображаться правильно непосредственно в xterm, но будет отображаться неправильно screen / tmux . Если вы правильно дадите ему TERM=screen* то он заметит отсутствие bce и выберет излучение большого количества пробелов, а не последовательность «clear to the end of line», которая будет выглядеть правильно.

  • Сделать vim yankings глобальным через общий текстовый файл
  • Nerdtree и текущий каталог
  • Как я могу сохранить код, созданный как исходный источник, когда я вставляю их в vim?
  • Индивидуальная подсветка vim
  • Как переключаться между окнами на VIM?
  • Как создать пользовательские сочетания клавиш в vim?
  • Вим - есть ли Capslock?
  • Vim копирует / вставляет messing up indentaton
  • Есть ли опция -remote для vim (а не gVim) в cygwin?
  • Как установить VIM на Linux, если у меня нет прав root?
  • Как получить shift + стрелки и ctrl + стрелки, работающие в Vim в tmux?
  • Vim застрял в режиме вставки
  • Interesting Posts

    Является ли My PSU совместимым с этим ИБП

    Windows 7: Прозрачное окно команд?

    Виртуальный экран VNC / рабочее пространство

    Как работают указатели функций в C?

    Как проверить, является ли диск Win 7 64-разрядным и какая версия?

    CSS-таргетинг на белую страницу, отображаемую Chrome в течение секунды секунды при загрузке

    Генерация ключей для SSH

    Перенос Windows 7 на новый жесткий диск / раздел

    Как повторно использовать «моментальные снимки» диска VirtualBox,

    Выключение программного обеспечения не работает в Windows 8

    Как я могу автоматически переслать электронную почту и изменить отправителя?

    Как вы переводите на новый ноутбук с внутреннего жесткого диска, удаленный из старого ноутбука?

    Как подключить несколько виртуальных частных сетей с использованием OpenVPN в Windows 7 одновременно?

    Подсчет ожидающего сектора на жестком диске

    Как я могу отменить или отменить команду «apt-get upgrade» на Ubuntu?

    Давайте будем гением компьютера.