Неправильные цвета с vim в iTerm2 с использованием Solarized

У меня странная проблема с iTerm2, в терминале vim (без графического интерфейса пользователя) и соляризованной цветовой схемой. Во-первых, я настроил iTerm2 для использования темной соляризованной цветовой схемы.

Я также использую Solarized для Vim. У меня есть следующие строки в моем.vimrc

set background=dark
colorscheme solarized

В терминале цветовая схема выглядит некорректно:консоль vim

Для справки это выглядит так под MacVim (gui vim)Gui Vim

Что мне нужно изменить в iTerm или моем.vimrc, чтобы цвета выглядели правильно в моей консоли vim?

10 ответов

Решение

Несколько вещей для проверки:

  1. В iTerm2 в разделе "Настройки" -> "Профили" -> "Терминал" в разделе "Эмуляция терминала" для параметра "Тип терминала отчета" установлено значение xterm-256color.

  2. В вашем.vimrc есть несколько опций, которые вы также можете установить, чтобы убедиться, что он использует 256 цветов:

    set background=dark
    " solarized options 
    let g:solarized_visibility = "high"
    let g:solarized_contrast = "high"
    colorscheme solarized
    
    И один из них должен работать, но сначала #1.

НО, если вы используете встроенный vim на Snow Leopard по умолчанию, он не будет работать, так как не поддерживает 256 цветов. Я считаю, что встроенная версия в Lion делает.

Изменить: Основываясь на нескольких комментариях к этому ответу, я удалил let g:solarized_termcolors = 256 линия от .vimrc пример выше. Похоже, что это может быть проблемой для некоторых. Другой говорит, что добавление строки let g:solarized_termcolors = 16 исправлена ​​проблема с отображением цвета Ваш собственный пробег может отличаться.

Второе редактирование: если вы загрузили соляризованную цветовую палитру в iTerm2, то вам необходимо let g:solarized_termcolors=16, Только let g:solarized_termcolors=256 если вы не используете соляризованную палитру в качестве цветовой предустановки iTerm2.

Приведенные выше ответы не работают для меня.

Я использую iTerm2 с vim 7.3 на OS X 10.7.4.

Если вышеуказанные решения не сработали и для вас, попробуйте это

syntax on
set background=dark
let g:solarized_termtrans = 1
colorscheme solarized

Обновление: По словам Джима Стюарта, это работает и на Китти.

https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized

Загрузите пакет Solarized ( https://github.com/altercation/solarized) и следуйте инструкциям:

Откройте iTerm 2, откройте "Предпочтения", щелкните значок "Профили" (ранее "Адреса", ранее "Закладки") на панели инструментов настроек, затем выберите вкладку "Цвета". Нажмите на "Загрузить пресеты" и выберите "Импорт...". Выберите файл темы Solarized Light или Dark.

Вы загрузили пресеты цвета Solarized в iTerm 2, но еще не применили их. Чтобы применить их, просто выберите существующий профиль в окне списка профилей слева или создайте новый профиль. Затем выберите пресет Solarized Dark или Solarized Light из выпадающего меню "Load Presets".

====================================

Или же:

cd ~/.vim/bundle
git clone git://github.com/altercation/vim-colors-solarized.git

Изменить.vimrc

Темная тема:

syntax enable
set background=dark
colorscheme solarized

Свет

syntax enable
set background=light
colorscheme solarized

Это работало для меня в OS X 10.9.1 в iTerm 2, а также в терминале. Одна ошибка, которую я делал, заключалась в том, что я помещал объявление colorscheme перед настройками termtrans и termcolors (и мне нужно было и то и другое, чтобы оно работало). Как уже говорили другие, я установил свой тип терминала на xterm-256color

if !has("gui_running")
    let g:solarized_termtrans=1
    let g:solarized_termcolors=256
endif

colorscheme solarized
set background=dark

От создателя: http://ethanschoonover.com/solarized/vim-colors-solarized

ВАЖНОЕ ПРИМЕЧАНИЕ ДЛЯ ТЕРМИНАЛЬНЫХ ПОЛЬЗОВАТЕЛЕЙ:

Если вы собираетесь использовать Solarized в режиме терминала (т.е. не в версии с графическим интерфейсом, такой как gvim или macvim), пожалуйста, рассмотрите возможность установки цветовой схемы эмулятора терминала для использования палитры Solarized. Я включил палитры для некоторых популярных эмуляторов терминала, а также Xdefaults в официальной загрузке Solarized, доступной с домашней страницы Solarized. Если вы используете Solarized без этих цветов, Solarized нужно будет указать, что его цветовая схема должна быть уменьшена до набора, совместимого с ограниченной палитрой 256 терминалов (тогда как, используя 16 значений цвета ANSI терминала, вы можете установить правильные конкретные значения для Solarized. палитра).

Если вы используете пользовательские цвета терминала, solarized.vim должен работать из коробки. Если вы используете эмулятор терминала, который поддерживает 256 цветов и не хотите использовать пользовательские цвета терминала Solarized, вам потребуется использовать ухудшенную цветовую схему 256 цветов. Для этого просто добавьте следующую строку перед соляризованной линией цветов:

let g:solarized_termcolors=256

Опять же, я рекомендую просто изменить цвета терминала на значения Solarized вручную или с помощью одной из множества схем терминала, доступных для импорта.

Я боролся с той же проблемой на OSX 10.11.6, iTerm2 Build 3.0.12.

Вот мое решение для этого.

  1. .vimrc

    Синтаксис включить установить фон = темная схема соляризации

  2. Установите тип терминала отчета на xterm-256color,

введите описание изображения здесь

  1. Установите предустановку цвета в профиле на Solarized Dark

введите описание изображения здесь

Ответ Билла Тернера работает, но есть способ заставить цвета точно соответствовать MacVim. Solarized имеет поддержку специально для iTerm2, среди прочих эмуляторов терминала.

  1. Перейти на страницу iterm2-colors-solarized github
  2. Следуйте инструкциям в разделе "Установка"
  3. Убедитесь, что ваш.vimrc имеет линию colorscheme solarized

Это должно установить цвета vim в iTerm2 такими, какие они есть в графических редакторах.

Для любых проблем, с которыми я сталкивался, я установил соляризованный цветовой профиль iterm2. Установка vim-color-solarized для пакетов vim и следование инструкциям были излишними и несовместимыми. Были забавные проблемы с подсветкой, как на скриншоте выше.

Извлеченный урок: не делай обоих.

Простой способ решить эту проблему:

В цветах dir на vim-color-solarized существует архив под названием 'solarozed.vim'

Откройте этот файл и выполните поиск:
exe "let s: bg_back = '".s: vmode. "bg =". s: back. "'"

заменить на:
exe "let s: bg_back = '".s: vmode. "bg =". s: нет. "'"

Ни один из предыдущих ответов не помог мне. Видимо мне не хватало:

set termguicolors

Я перепробовал все предыдущие предложения. Я только добавил set t_Co=256 в.vimrc, и это было исправлено. Мне не нужно было создавать tmux псевдоним или изменить мой конфигурационный файл.

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