Как заставить Vim на Cygwin отображать правильные цвета?

Я использую Vim на Cygwin. И я пытаюсь использовать цветовую схему пустыни. В g Vim это выглядит так:

Но в моем терминале MinTTY это выглядит так:

Есть ли способ это исправить?

Моя переменная TERM установлена ​​в xterm-256color. Кроме того, я добавил t_Co=256 в мой файл.vimrc. Но это не помогает.

PS Я уже нашел какое-то решение. Я могу исправить это с помощью плагинов CSApprox/guicolorscheme. Тем не менее, есть ли способ исправить это, не используя плагины?

2 ответа

Решение

Попробуйте схватить RGB 0xRRGGBB Значения цветов внутри определения цветовой схемы пустыни для vim и подключив их в MinTTY, используя методику ниже. Затем вы можете переписать цветовую схему (возможно, сначала сделав копию под новым именем), чтобы использовать новые цвета (в диапазоне 0-15). Вы можете поставить echo Команды в ваш .bashrc поэтому они будут настроены для каждого открытого терминала MinTTY.

Из http://code.google.com/p/mintty/wiki/Tips:

Изменение цвета

Цвета переднего плана, фона и курсора по умолчанию можно изменить в диалоговом окне параметров или указав параметры ForegroundColour, BackgroundColour и CursorColour в файле конфигурации или в командной строке.

Однако их также можно изменить из терминала, используя для этого управляющие последовательности xterm, например:

echo -ne '\e]10;#000000\a'  # Black foreground
echo -ne '\e]11;#C0C0C0\a'  # Light gray background
echo -ne '\e]12;#00FF00\a'  # Green cursor

В mintty, значения цвета RGB также могут быть указаны с использованием десятичной записи через запятую, например, 255,0,0 вместо #FF0000 для красного. Названия цветов X11 в настоящее время не поддерживаются.

16 цветов ANSI можно установить в файле конфигурации или в командной строке, используя такие настройки, как синий или BoldMagenta. Они задокументированы в разделе конфигурации руководства. Они также могут быть изменены с помощью управляющих последовательностей xterm. Вот они со своими значениями по умолчанию:

echo -ne '\e]4;0;#000000\a'   # black
echo -ne '\e]4;1;#BF0000\a'   # red
echo -ne '\e]4;2;#00BF00\a'   # green
echo -ne '\e]4;3;#BFBF00\a'   # yellow
echo -ne '\e]4;4;#0000BF\a'   # blue
echo -ne '\e]4;5;#BF00BF\a'   # magenta
echo -ne '\e]4;6;#00BFBF\a'   # cyan
echo -ne '\e]4;7;#BFBFBF\a'   # white (light grey really)
echo -ne '\e]4;8;#404040\a'   # bold black (i.e. dark grey)
echo -ne '\e]4;9;#FF4040\a'   # bold red
echo -ne '\e]4;10;#40FF40\a'  # bold green
echo -ne '\e]4;11;#FFFF40\a'  # bold yellow
echo -ne '\e]4;12;#6060FF\a'  # bold blue
echo -ne '\e]4;13;#FF40FF\a'  # bold magenta
echo -ne '\e]4;14;#40FFFF\a'  # bold cyan
echo -ne '\e]4;15;#FFFFFF\a'  # bold white

Если вы используете Cygwin, то зачем использовать недооцененную мяту? Используйте xterm, и у вас будет 256 цветов, чтобы выбрать из каждого цвета vim плюс все вкусности реального терминала.

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