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

Itumm vim colorscheme не работает

Когда я запускаю vim из командной строки в iTerm, подсветка синтаксиса не работает локально.

В vim, например, я установил красивую цветовую схему, которая хорошо работает в MacVim, но было бы здорово, если бы в iTerm она показала тот же самый.

Любые идеи, как я могу включить это?

Это цветовая схема, которую я пытаюсь использовать http://www.vim.org/scripts/script.php?script_id=2340

4b9b3361

Ответ 1

Эта цветовая схема выглядит так, что она поддерживает только 256-цветные терминалы. Если Vim считает, что ваш терминал поддерживает только 8 цветов, вы не увидите эту конкретную цветовую схему.

Вы можете проверить это в Vim:

:echo &t_Co

Если это возвращает 8, это может быть проблемой. Попробуйте установить его на 256 в ~/.vimrc и посмотрите, помогает ли это:

let &t_Co=256

Ответ 2

Чтобы включить выделение кода в vim, попробуйте включить плагин синтаксиса:

:syntax enable

Ответ 3

Тем, у кого еще есть проблемы.

iTerm 2 → Настройки → Профили → Цвета → Минимальный контраст → низкий

setup

Ответ 4

У меня была эта проблема раньше, а также некоторые связанные с ней проблемы, поэтому я обобщу то, что нашел.

  • Убедитесь, что iTerm настроен на использование 256 цветов. Попробуйте $ echo $TERM в командной строке, и если вы не видите xterm-256color, то следуйте инструкциям в этом ответе.

  • Настройте свой vimrc для обработки других терминалов. Обычный терминал в Snow Leopard поддерживает только 8 цветов и будет мигать, если вы попытаетесь использовать 256 цветовую цветовую схему (я просто не устанавливаю ее в этом случае). Вот что у меня есть:

    " enable 256 colors in GNOME terminal (for my Ubuntu VM)
    if $COLORTERM == 'gnome-terminal'
        set t_Co=256
    endif
    
    " set your color scheme (replace wombat with whatever yours is called)
    " if you're using a gvim or macvim, then your color scheme may have a version
    " that uses more than 256 colors
    if has("gui_running")
        colorscheme wombat
    elseif &t_Co == 256
        colorscheme wombat256
    endif
    
    " turn on language specific syntax highlighting
    syntax on
    

Ответ 5

Несмотря на все советы в этом (и других, подобных) вопросах, я в конце концов нашел свою проблему в забытой части vimrc, которую я взял где-то в Интернете несколько лет назад (потому что это было довольно красиво организовано), и затем широко изменен для моих собственных целей.

Но проблемная область была в небольшой группе настроек, которые я никогда не касался, в исходном файле, с которого я начал работать. Соответствующим битом .vimrc был:

   " GVIM- (here instead of .gvimrc)
   if has('gui_running')
          set guioptions-=T               " remove the toolbar
          set lines=40                    " 40 lines of text instead of 24,
   else
           set term=builtin_ansi       " Make arrow and other keys work
   endif

Неудивительно (в ретроспективе), что строка "set term" сбрасывает все, чтобы независимо от того, какой тип вашего терминала сообщает в переменной окружения TERM, вы завершаете общий 8-цветный ANSI-терминал. Установка "term" явно внутри .vimrc, вероятно, очень плохая идея, точно так же, как установка t_Co напрямую.

Я удалил весь этот блок (и поместите настройки gvim в .gvimrc, где они принадлежат), и с тех пор все работает правильно.