Почему цветовые схемы vim отличаются между gvim и нормальным терминалом?

Почему цветовые схемы vim отличаются между gvim и нормальным терминалом? Например, многие схемы этой showcase работают в обычном терминале. Я сохраняю все новые схемы до ~/.vim/colors/ и устанавливаю с помощью :colorscheme cool

Любой способ решить эту проблему?

Ответ 1

Окна терминалов (например, xterm) обычно ограничены 2 ** 8 цветами. С другой стороны, термин GUI может иметь столько цветов, сколько ваш графический рабочий стол Windows.

Многие цветовые схемы vim предназначены для графического интерфейса или терминала; если они предназначены для графического интерфейса пользователя, вряд ли они будут отображаться в терминале хорошо по умолчанию.

Если вам нужно преобразовать схему графического интерфейса в терминал (256 цветов), вы можете использовать плагин CSApprox.

Ответ 2

Два текущих ответа довольно хороши. Ваш голос должен идти к Майку, потому что нет идеального решения.

Цвета цветов Vim обычно определяют цвета отдельно для GUI и для CLI. Некоторые цвета ничего не определяют для CLI и тех, которые используют цвета X11.

Эти цвета X11 (отмеченные 0-255) были более или менее стандартизированы с очень долгого времени и только действительно работают в терминальных эмуляторах, поддерживающих 256 цветов. В других менее способных терминальных эмуляторах высшие числа пропускаются и ваши цвета испорчены.

GUI Vim также может использовать эти 256 цветов и любой цвет, который вам может понадобиться, если он указан шестнадцатеричным обозначением (# 00d6e3).

Поскольку графические символы GUI могут использовать тысячи цветов, а цвета цветов CLI могут использовать только 256 цветов, значения, используемые для CLI, могут быть приблизительными только для тех, которые используются графическим интерфейсом. Именно поэтому CLI Vim не может выглядеть как GUI Vim, даже если вы используете современный эмулятор терминала.

Если ваша цветовая схема выбора настаивает на использовании цветов за пределами диапазона X11, у вас никогда не будет CLI Vim и GUI Vim, которые выглядят одинаково.

Единственный способ синхронизировать цвета GUI и CLI Vim, которые я вижу, - это заглушить цветовую схему GUI, используя только цвета X11.

Ответ 3

Поскольку gvim напрямую выбирает цвета X11, в то время как терминал vim использует доступную палитру терминала.

Итак, если вы используете современный терминал (gnome, kde или даже OS X), вы можете изменить палитру доступных цветов, а VIM будет выглядеть совершенно иначе. GVIM, с другой стороны, устанавливает цвета непосредственно без промежуточного слоя перевода приложения терминала.

Ответ 4

Theres новый ребенок в блоке под названием CSExact, который отличает вас от терминала точными цветами цвета. Цвета выглядят намного лучше, чем с CSApprox.

Этот плагин позволяет использовать цветовые схемы GUI (GVim) в (некоторых) терминалах. Это делается с помощью магии терминала для изменения цветовой палитры терминала при запуске и каждый раз, когда загружается цветовая схема.