Настройка цвета Solarized в Vim и iTerm2 - цвет выделения нетекстовых символов отображается неправильно

Я использую iTerm2 (сборка 1.0.0.20130319) и Vim (корзина MacVim Snapshot 66) поверх OS X 10.7.5 в качестве моей команды редактирования CLI.

iTerm2:

  • Цветовая схема: Solarized Dark
  • Тип терминала: xterm
  • Минимальный контраст: самый низкий
  • Прозрачность: нет
  • Затемнение: отключено
  • Фоновое изображение: нет

Вим:

set t_Co=16
set background=dark
colorscheme solarized

echo &t_Co возвращает 16. Обычно у меня не возникает проблем с базовой настройкой. Но дополнительно я пытаюсь дать символам "NonText" и "SpecialKey" значение цвета, доступное из цветовой палитры solarized (палитру можно найти здесь).

highlight NonText ctermfg=0
highlight NonText guifg=#073642

highlight SpecialKey ctermfg=0
highlight SpecialKey guifg=#073642

Странно то, что группа "SpecialKey" правильно отображает значение цвета "cterm", а группа "nonText" - нет. Кажется, что он отображает значение 8, которое используется "ctermbg". Как следствие, все «нетекстовые» символы больше не видны. Обе группы принимают значения «guifg», кстати.

Я пропустил что-то, что может помешать моей настройке?


person Saucier    schedule 21.03.2013    source источник
comment
Интересно, когда я устанавливаю set t_Co=8, тогда нетекстовые символы принимают заданное значение. Но тогда возникают другие проблемы. Так что не совсем решение.   -  person Saucier    schedule 21.03.2013
comment
1. Количество цветов, соответствующее xterm, равно 8, а не 16. 2. Vim знает, как получить правильное количество цветов для $TERM, которое он выбрал при запуске. Если для iTerm установлено значение xterm, Vim правильно определяет 8 цветов, и вам абсолютно не нужно ничего делать в Vim. 3. На самом деле, установка нестандартных значений для параметров, связанных с термином, или принудительное их присвоение значениям, не поддерживаемым вашим терминалом, — довольно плохая идея.   -  person romainl    schedule 21.03.2013
comment
Какие еще проблемы?   -  person romainl    schedule 21.03.2013
comment
@romainl, понял твою точку зрения. Альтернативой является указание iTerm2 эмулировать xterm-256, что приводит к той же проблеме, что и выше. При использовании только 8 цветов цвета плагина Powerline отображаются неправильно.   -  person Saucier    schedule 21.03.2013
comment
Откровенно говоря, проблема соляризована. Вы видите все соляризованные вопросы справа? Это беспорядок. И Powerline не лучше. В наши дни нет смысла использовать что-либо, кроме xterm-256color. В чем проблема с xterm-256color? Что твой NonText не работает?   -  person romainl    schedule 21.03.2013
comment
Точно, значение цвета для NonText кажется неправильным тоном.   -  person Saucier    schedule 21.03.2013
comment
Какой из них вы ожидаете? Согласно этой таблицы, 0 должен означать черный, когда t_Co == 16 и ничего, когда t_Co == 8 хотя кажется, что вы должны использовать 4 в этом случае. Но базовый цвет, к которому он относится, — #073642, средне-синий. Какой беспорядок.   -  person romainl    schedule 21.03.2013
comment
Напоминаю: цвет правильно отображается в группе SpecialKeys, независимо от того, использую ли я 8, 16 или 256 цветов. Вот почему мне интересно, почему один и тот же цвет не относится к группе NonText. Но да, вы правы, 0 — это черный (base02) в соответствии с цветовой палитрой, и я ожидаю, что это будет именно так.   -  person Saucier    schedule 21.03.2013
comment
Вы делаете все это в соляризованной цветовой схеме или в своем vimrc?   -  person romainl    schedule 21.03.2013
comment
Я не совсем уверен, что вы имеете в виду. Но я просто использую готовые темы для iTerm2 и Vim и пытаюсь назначить значения из солнечной цветовой палитры группам внутри .vimrc.   -  person Saucier    schedule 22.03.2013
comment
Вы используете солнечную цветовую схему в Vim, верно? Если вы хотите настроить его цвета, вы должны сделать это в самой цветовой схеме, а не в вашем ~/.vimrc.   -  person romainl    schedule 22.03.2013


Ответы (1)


Я нашел решение в системе отслеживания ошибок.

Этот конфиг позволяет назначать цвета определенным элементам и группам:

highlight CursorLineNr cterm=none ctermfg=0 guifg=#073642
highlight NonText cterm=none ctermfg=0 guifg=#073642
highlight SpecialKey cterm=none ctermfg=0 guifg=#073642 ctermbg=8 guibg=#002b36

Обратите внимание на

cterm=нет

что устраняет проблему.

person Saucier    schedule 22.03.2013