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

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

Например, собственная цветовая схема vim - desert должна выглядеть так: desert color schema

Но в моем vim многие цвета не будут отображаться, например, фон. my vim color display

Но некоторые цветовые схемы работают правильно.

Почему это?

В: Изменить- > Настройки профиля → Цвета, я выбираю "использовать цвета из системной темы"

Ответ 1

Многие схемы цветов предназначены для 256 цветов, что значительно лучше, чем стандартный 8-цветный терминал. Чтобы выполнить эту работу, вам нужно $TERM установить 256-цветный терминал, например xterm-256color.

Если у вас есть 256-цветный терминал (похоже, вы делаете снимок экрана, если это терминал Gnome), установите $TERM в xterm-256color и включите 256 цветов в вашем vimrc с чем-то вроде:

if $TERM == "xterm-256color"
  set t_Co=256
endif

Vim wiki содержит несколько советов по настройке правильного $TERM для разных эмуляторов терминалов. Самый простой способ быстро проверить это - сделать

TERM=xterm-256color vim 

Это не приведет к тому, что colorsmhemes, предназначенные для GUI vim, полностью совместимы с терминалом Vim, но сделают 256 цветов цветов, и это гигантское улучшение по сравнению с стандартными 8 цветами цветов.

Ответ 2

В системах * nix самая важная задача: установить переменную окружения $TERM в запись terminfo, описывающую ваши возможности терминала, , включая количество поддерживаемых цветов, чтобы рекламировать эти возможности для приложений, которые будет работать внутри вашего терминала.

Другими словами, причина, по которой вы устанавливаете эту переменную, в первую очередь, - это сказать Vim (или mutt.. slrn.. ELinks.. и т.д.).. Эй, между прочим.. Я поддерживаю 256 цветов, ты знаешь..?

В результате не указывается при добавлении разворотов к вашему vimrc для проверки значения $TERM, чтобы установить значение переменной t_Co Vim. Vim достаточно умен, чтобы забрать поддерживаемое количество цветов из записи terminfo, на которую указывает переменная $TERM. Вот почему вы его устанавливаете в первую очередь..!

В этом отношении терминал/консоль Vim просто следует модели * nix и определяет возможности терминала из записи terminfo, а автоматически устанавливает содержимое переменной t_Co.

Пробовал и тестировал что-то вроде 15 различных эмуляций терминала в среде GNU/linux.

Ответ 3

Первый снимок экрана - GVim, а не терминал Vim. Терминалы очень ограничены, когда речь заходит о поддержке цвета. И GVim может использовать полное пространство RGB.

Ответ 4

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