Изменить цвет шрифта для комментариев в vim


96

Я хотел бы изменить цвет шрифта по умолчанию для комментариев с темно-синего на слегка желтоватый. На черном фоне сложно читать. Не могли бы вы мне посоветовать, как изменить только этот цвет? Остальные цвета меня устраивают.

Я использую xfce4-terminal (не gvim с графическим интерфейсом).

Пока что я выполнил настройки в ~/.profileфайле по этой ссылке следующим образом

if [ -e /usr/share/terminfo/x/xterm-256color ]; then
        export TERM='xterm-256color'
else
        export TERM='xterm-color'
fi

и

set t_Co=256

в ~/.vimrc

Спасибо


7
Просто глупый вопрос, вы пробовали разные встроенные цветовые схемы? Попробуйте например :colorscheme desert. Автозавершение обычно должно работать.
Бенуа

Я пробовал. Но хотелось бы добиться большей настройки. Если никто не знает этого ответа, я приму ваш как лучшее решение, потому что вы ответили до того, как я уточнил свой вопрос в соответствии с тем, чего я хотел достичь.
xralf

Разве нельзя переназначить цветовую палитру терминала? У терминала нет никаких настроек?
Бенуа

@Benoit См. Следующую версию вопроса.
xralf

Ответы:


58
:hi Comment guifg=#ABCDEF

Выбери свой цвет! При использовании цветного терминала, заменить guifg=#ABCDEFс ctermfg=Nс N будет номером цвета.

Также введите :help :hiдля получения дополнительной информации.


2
Спасибо. ctermfg работает с такими цветами, как зеленый или желтый. Но если я дам ему #ABCDEF или ABCDEF, он пишет ошибку E421: color name or number not recognized. Он не распознает буквы в шестнадцатеричном коде, он распознает только числа.
xralf

да, guifgпараметр предназначен для использования vim gui (gvim).
Бенуа

1
Значит, я ограничен только 16 цветами? Я добавил настройку, .vimrcно это не работаетset highlight Comment ctermfg=yellow
xralf

1
Их больше 16. Смотрите здесь . Я хочу добиться, чтобы мои комментарии были желтыми, но только слегка желтыми и навсегда. Можно ли это установить .vimrc?
xralf

3
Это на два года слишком поздно, но на тот случай, если кто-то еще захочет решить проблему @Roboprog. Мой игнорировал это, когда я помещал строку hi comment ctermfg=<colour>в .vimrcфайл, но я решил, что это потому, что эта строка стояла перед строкой syntax on, как только я поменял порядок, он работал нормально ..
guskenny83

129

В большинстве корректных цветовых схем будет соблюдаться backgroundнастройка:

set background=dark

изменит цвет комментариев с темно-синего на светло-синий при использовании цветовой схемы по умолчанию.


4
Это отличное решение. Может быть, это не лучший ответ на поставленный выше вопрос, но решает проблему «очень трудно читать» идеально.
GabrieleV

5
Это должно быть значение по умолчанию в Ubuntu. Комментарии практически невозможно прочитать, когда синий на фиолетовом фоне. Спасибо. Я включил это в свой ~/.vimrcфайл. Если кто-то хочет проверить, как это выглядит, не делая этого, просто введите указанную выше команду в vim после нажатия :клавиши.
Дрю Ноукс

1
Это было первое, что обнаружил поиск в Google. Однако мне нравятся цвета по умолчанию (кроме комментариев), которые хорошо работают как в темном окне терминала, так и при вставке в электронное письмо / документ с белым фоном. Мне нравится темный терминал, что я могу сказать? (ностальгия / кастом)
Roboprog

2
добавление строки 'set background = dark' в ~ / .vimrc помогло. мои глаза так привыкли к другой цветовой схеме, мой мозг думает, что это выглядит некрасиво ... но, по крайней мере, теперь я могу видеть свои комментарии. Спасибо.
sonjz

5
@ 3kstc: вы можете добавить его ~/.vimrcкак есть. Вы также можете предварительно просмотреть, что происходит в текущем сеансе, только набрав его в командном режиме. (В обычном режиме введите, :чтобы войти в командный режим.)
nperson325681 08

54
hi Comment ctermfg=LightBlue

Добавьте это в свой .vimrcфайл, который находится либо в вашем каталоге, ~либо в /etc/vimкаталоге. Это сделает его постоянным. Я не тестировал это с помощью gvim.

Я также set background=lightперед установкой цвета комментариев. Мне нравятся все созданные им цвета, кроме комментариев.


1
Откуда LightBlueвзялось?
nn0p

это сработало для меня, только когда я поместил его в конец .vimrc
user3342981

@ user3342981 Местоположение не имеет значения. У вас должно быть что-то еще в файле конфигурации, которое изменяет эту переменную. Таким образом, если поставить его в конец, значит, ваша настройка будет последней интерпретированной.
sherrellbc

Я полагаю, мне нужно поставить его после, syntax onчтобы он заработал. Не знаю почему.
user3342981

8

Если цель состоит в том, чтобы сделать его более читабельным на заднем фоне текстовой консоли, приведенная ниже команда показала мне, что я замечательный вариант и его легче запомнить:

:colorscheme evening

Но учтите, это изменит цвета других элементов.


6

После небольшого поиска можно найти достойную ссылку на vim, особенно по этой проблеме, на http://vim.wikia.com/wiki/256_colors_in_vim . Тем не менее, неплохое место для начала - это via: be: verbose hi, когда на самом деле внутри vim, и редактирование файла. Затем проверьте, как со всеми переменными связаны метаданные. Данные, возвращаемые оттуда, позволяют легко добавить желаемые типы модификаторов в .vimrc. В качестве примера, это обновления, которые я недавно добавил, чтобы избавиться от темно-синего цвета и, как следствие, не надоедать голубым:

    set number background=dark
    syntax on
    highlight Comment    ctermfg=119
    highlight Identifier ctermfg=99AA00


1

Существуют различные цветовые схемы vim. defaultВ цветовой схеме комментарий отображается синим цветом, что затрудняет чтение на черном фоне терминала. Я предпочитаю использовать desertцветовую схему, которая отображается в удобочитаемых цветах.

Чтобы включить desertцветовую схему в vim, используйте команду :color desert. Если вы хотите вернуться, defaultиспользуйте команду :color default.

Вы даже можете обновить ~/.vimrcсвою цветовую схему.

echo 'color desert' >> ~/.vimrc

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.