[Comm] vim в xterm сбрасывает colorscheme

Sergey Vlasov vsu на altlinux.ru
Пт Фев 25 21:55:46 UTC 2011


On Fri, Feb 25, 2011 at 03:53:32PM +0100, vx 8400 wrote:
> Как заставить vim не сбрасывать colorscheme при работе в xterm на
> текущем Sisyphus?
> 
> После запуска vim (vim-console-7.3.112-alt1) в xterm (xterm-269-alt1)
> colorscheme устанавливается в соответствии с ~/.vimrc (прилагается):
> 
>    http://sites.google.com/site/strgko/vim/do.png
> 
> После перемещения курсора (стрелка вниз/вправо/..., поиск, и т.д.)
> vim меняет colorscheme:
> 
>  http://sites.google.com/site/strgko/vim/posle.png
> 
> Цвета меняются не на схему по умолчанию, а на более яркие.

Вообще-то с приложенным .vimrc они меняются на цвета из схемы zellner.
Комбинация colorscheme с ручным заданием hi в .vimrc работает
неустойчиво - лучше сделать полноценную схему и положить в
~/.vim/colors/.

> Эффект сохраняется при TERM=xterm, xterm-color, при любых
> установках XTerm*color*.

На самом деле сейчас надо пробовать TERM=xterm-256color (или
XTerm*termName: xterm-256color).  Дело в том, что некоторое время
назад без объявления в changelog пакета в xterm была включена
поддержка 256 цветов:

http://git.altlinux.org/gears/x/xterm.git?p=xterm.git;a=blobdiff;f=xterm.spec;h=14c938565fa058e6cc0db9b77c16a15f421b2641;hp=6d6e940a4a4b321784138c8f8b9fbc87d5e85116;hb=e6b779655dabed6b3fb2b76f735426a43b79fe6e;hpb=0f2ffa1f99e6388d298fdbd617f5c896d49cef36

(там ещё и опечатка в соседней опции).

При этом vim при работе с xterm пытается определить реальные
возможности терминала путём обмена с ним управляющими
последовательностями, однако, похоже, в текущей версии это срабатывает
только после обновления экрана.  При этом меняется значение параметра
t_Co, что вызывает перезагрузку цветовой схемы (в результате заданные
вручную настройки hi теряются).  А при переключении с 8 на 16 или 256
цветов добавляется поддержка как минимум "ярких" цветов для фона, в
результате ctermbg=yellow начинает выдавать именно запрошенный цвет.

Если хочется привести цветовую схему к 16 стандартным цветам даже при
использовании терминала с поддержкой 88 или 256 цветов, как минимум
цвета 8 (DarkGray) и 3 (Brown, DarkYellow) нужно указывать числами, а
не именами, поскольку для этих имён при t_Co > 16 выбираются другие
номера цветов (таблица :help cterm-colors врёт).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20110226/64487170/attachment.bin>


Подробная информация о списке рассылки community