13

Я пытаюсь использовать цветовую схему пустыни с VIM 7.0 на CentOS 5.6 x64, расположенную здесь:

http://hans.fugal.net/vim/colors/desert.vim

Я скачал файл и сохранил его в своем ~/.vim/colors . Затем я говорю VIM использовать цветовую схему, выпуская:

:colors desert

Это должно выглядеть так:

Однако я получаю это:

Я захожу на этот сервер как обычный пользователь (не root или sudo), используя PuTTY 0.60 и установил следующие параметры в Window -> Colours:

Allow terminal to specify ANSI colours - checked
Allow terminal to use 256-colour mode - checked
Bolded test is a different colour - checked
Attempt to use logical palettes - unchecked
Use system colours - unchecked

Если я буду sudo или войду в систему как root и попробую то же самое, я не получу никаких цветов, кроме белого текста на черном фоне.

Эти схемы в основном нацелены на gVIM и PuTTY просто не может отображать эти цвета?

Я немного погуглил и наткнулся на такие статьи, как эта, но, похоже, они не работают.

1 ответ1

19

По умолчанию PuTTY представляется как xterm . База данных terminfo , используемая различными программами для определения возможностей терминала, сообщает, что xterm поддерживает только восемь цветов:

$ infocmp -1L xterm | grep max_colors

Это означает , что даже если ваша версия Xterm не поддерживает режим 256-цветный, программы не будут знать об этом.

  • Самое простое решение - установить для переменной среды $ TERM значение xterm-256color.

    (В вашем ~/.profile вы можете использовать:
    if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi)

  • Вы можете указать PuTTY всегда идентифицировать себя как xterm-256color через Конфигурация → Соединение → Данные → Строка типа терминала.

    Примечание: Если вы используете # 1 или # 2, и вы подключаетесь к серверу , который не имеет apropriate записи Terminfo, все программы TUI сломаются.

  • Вы также можете установить 't_Co' в vim на 256 чтобы переопределить значение terminfo.

    if &term == "xterm"
        set t_Co=256
    endif
    
  • Или вы можете редактировать базу данных terminfo.

    $ infocmp -L -1 xterm | sed -r 's/(max_colors)#[0-9]+/\1#256/' > /tmp/xterm
    $ tic /tmp/xterm
    

    Обновленная запись будет сохранена в ~/.terminfo .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .