Использование цветовых схем с vim и putty

15

Я пытаюсь использовать цветовую схему пустыни с 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:

Разрешить терминалу указывать цвета ANSI - проверено
Разрешить терминалу использовать 256-цветный режим - проверено
Жирный тест другого цвета - проверено
Попытка использовать логические палитры - не проверено
Использовать системные цвета - не проверено

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

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

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

Кев
источник

Ответы:

22

По умолчанию 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.

user1686
источник
Отличный ответ. Это лучше, но я чувствую, что 256 цветов недостаточно, чтобы передать эти пастельные оттенки. Любая идея, почему я не получаю цвета вообще при входе в систему как root?
Кев
1
@Kev: 1) 256-цветный режим - лучшее, что можно получить на эмуляторе терминала, совместимом с VT100. (Я слышал, что KDE Konsole имеет поддержку настоящих цветов, но она очень нестандартная.) 2) Когда вы входите в систему как root, вы получаете отдельный домашний каталог, а также отдельный ~/.vim/colors.
user1686
1
@Kev: Потому vi что не имеет цветовых схем или подсветки синтаксиса - или чего-либо, кроме оригинальных базовых функций. (VIM является "Ви Улучшение" в конце концов.)
user1686
1
vi --versionговорит, что это vim, так это урезанный vim, чтобы он выглядел как vi? Извините, если это глупый вопрос, прошло много лет с тех пор, как я работал с unix в гневе (блоки SCO Unix с последовательными портами), и был только vi (настоящий vi).
Кев
1
Вроде. Когда вы запускаете vim как « vi», он запускается в режиме «совместимости», ведя себя как можно больше, как vi. Я не знаю CentOS, поэтому я не уверен, является ли это просто режимом или полностью отдельной урезанной сборкой. (Мой дистрибутив вместо этого упаковывает настоящий vi ...)
user1686