Неправильные цвета с vim в iTerm2 с использованием Solarized - PullRequest
80 голосов
/ 02 сентября 2011

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

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

set background=dark
colorscheme solarized

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

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

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

Ответы [ 10 ]

115 голосов
/ 02 сентября 2011

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

  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.

НО, если вы используете по умолчанию, встроенный в 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.

87 голосов
/ 19 октября 2012

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

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

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

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

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

12 голосов
/ 06 марта 2014

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

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

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

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

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

Или:

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
10 голосов
/ 12 февраля 2014

Это работало для меня в 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
6 голосов
/ 21 ноября 2016

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

Вот мое исправление.

  1. .vimrc

    синтаксис включен установить фон = темный солярия

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

enter image description here

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

enter image description here

6 голосов
/ 09 декабря 2013

От создателя: 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 вручную или с помощью одной из многих схем терминала, доступных для импорта.

4 голосов
/ 21 сентября 2012

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

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

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

1 голос
/ 21 марта 2015

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

В цветах 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: нет. "'"

0 голосов
/ 04 марта 2018

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

Извлеченный урок: не делай и того, и другого.

0 голосов
/ 06 августа 2017

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

...