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

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

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

set background=dark
colorscheme solarized

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

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

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

Ответ 1

Несколько вещей, чтобы проверить:

  • В iTerm2 в настройках → Профили → Терминал в разделе "Эмуляция терминалов" у вас есть "Тип терминала отчета:", установленный на xterm-256color.

  • В вашем .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, если вы не используете солнечную палитру в качестве предустановленного цвета iTarm2.

Ответ 2

Вышеуказанные ответы не помогли мне.

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

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

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

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

Ответ 3

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

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

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

Теперь вы загрузили предустановленные настройки цвета 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

Ответ 4

Это работало для меня в 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

Ответ 5

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

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

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

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

let g:solarized_termcolors=256

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

Ответ 6

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

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

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

Ответ 7

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

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

  • .vimrc

    синтаксис set background = dark colorscheme solarized

  • Задайте тип терминала отчета xterm-256color.

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

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

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

Ответ 8

Простым способом решения этой проблемы является:

В цветах, расположенных на vim-color-solarized, существует арки, называемый "solarozed.vim"

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

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

Ответ 9

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