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 врёт).