Подтвердить что ты не робот

Vim Solarized на OS X Terminal.app Неверные цвета

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

Я пытаюсь перенести мою конфигурацию vim, чтобы использовать ее только с терминала. В настоящее время я использую gVim, и все работает нормально.

Но в терминале .app цветовая схема выключена. Я использую тему Solarized 256 для терминала .app и соляризированную тему в vim.

Вот как они выглядят:

gVim left, Terminal.app Right

Мне нужно было установить g: solarized_termtrans = 1, чтобы получить фон, чтобы даже показать правильный цвет.

4b9b3361

Ответ 1

У меня была эта проблема сама собой.

Однако следующий оператор исправил все, вот как я управляю поддержкой терминала в файле .vimrc: https://github.com/Greduan/dotfiles/blob/8b48b0d788c0fed6fc14720bbe3ae9def31af947/vim/vimrc.vim#L550-L556

if !has('gui_running')
    " Compatibility for Terminal
    let g:solarized_termtrans=1

    " Make Solarized use 16 colors for Terminal support
    let g:solarized_termcolors=16
endif

В основном это исправляет его для терминала, если вы используете терминал. Попробуйте использовать :let g:solarized_termcolors = 16.

Псевдокод:

  • Если пользователь не использует графический интерфейс пользователя:
    • Затем установите termtrans равным единице.
    • И сообщите Vim, чтобы использовать только 16 цветов или 256, если ваш терминал поддерживает его (не знаю, что делает).
  • Endif

РЕДАКТИРОВАТЬ 1:

Если вы уверены, что используете 256-цветный терминал, вы также можете просто оставить это в покое, и он будет работать отлично. Например: https://github.com/Greduan/dotfiles/blob/6dac113d8281b0201399831bf62a2ea520d28154/vim/vimrc.vim#L551-L561

if !has('gui_running')
    " Compatibility for Terminal
    let g:solarized_termtrans=1

    if (&t_Co >= 256 || $TERM == 'xterm-256color')
        " Do nothing, it handles itself.
    else
        " Make Solarized use 16 colors for Terminal support
        let g:solarized_termcolors=16
    endif
endif

Что это значит, проверьте, есть ли у вас терминал. Если он установил termtrans, проверьте, имеет ли ваш терминал 256 цветов, если он оставил его в покое, если он не устанавливает Solarized для использования 16 цветов. Это работает намного лучше.