Використання кольорових схем з vim та шпаклівкою


16

Я намагаюся використовувати кольорову схему пустелі з 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 просто не в змозі відобразити ці кольори?

Я google'd трохи навколо і наткнувся на такі статті, як ця, але, схоже, вони не працюють.

Відповіді:


23

За замовчуванням 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 і підключаєтесь до сервера, який не має відповідного терміна, то всі програми TUI будуть порушені.

  • Ви також можете встановити 't_Co'параметр in 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.


Відмінна відповідь. Краще, але мені здається, що 256 кольорів недостатньо для надання цих пастельних відтінків. Будь-яка ідея, чому я взагалі не отримую жодних кольорів під час входу як root?
Кев

1
@Kev: 1) 256-кольоровий режим - це найкраще, що можна отримати на емуляторі терміналів, сумісних з VT100. (Я чув, що KDE Konsole підтримує справжній колір, але це дуже нестандартно.) 2) Коли ви входите в систему як root, ви отримуєте окремий домашній каталог, а також окремий ~/.vim/colors.
користувач1686

1
@Kev: Тому vi що не має кольорових схем або виділення синтаксису - або нічого іншого, крім оригінальних основних функцій. (VIM є "Ві Поліпшення" в кінці кінців.)
user1686

1
vi --versionкаже, що це vim, так чи це скорочений vim, щоб він виглядав як vi? Вибачте, якщо це непросте питання, минули роки, коли я з гнівом працював з Unix (коробки SCO Unix із серійними портами), і було лише vi (справжнє vi).
Кев

1
Типу. Якщо ви запустите vim як " vi", він запускається в режимі "сумісності", поводячись максимально, як vi. Я не знаю CentOS, тому я не впевнений, чи це просто режим, або зовсім окрема оброблена вниз складова. (Мій distro пакує справжнє vi замість цього…)
user1686
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.