Я использую vim и набираю много HTML-кода на Django, и мне не нравится синтаксис выделения htmldjango.vim или html.vim. Я решил, что должен просто создать свою собственную базовую подсветку синтаксиса для Django html. Все, что я хочу, это чтобы все html-теги (ul, li, html, head, title, body, p и т.д.) Были окрашены в синий цвет, я хочу, чтобы все переменные (все, что начиналось и заканчивалось на {{}} или {%%}) должен быть окрашен в желтый цвет, а все ссылки и названия ссылок (a href = 'link'> linkNames) должны быть окрашены в красный цвет.

Итак, мой вопрос, как мне сказать vim, что если код является одним из тегов ниже:

<html> </html> <body> </body> <ul> </ul>

и т. д., то, чтобы покрасить его в синий цвет?

и если код начинается с

{{ or {%

и заканчивается

}} or %}

затем покрасить его в желтый цвет? А если это ссылка или название ссылки, то чтобы она была красного цвета?

2 ответа2

0

Сначала вы устанавливаете серию регулярных выражений для определения областей текста для выделения, как подробно описано в :help syntax . Свяжите эти выделенные группы с одной из общих групп, как описано в :help group-name . Затем ваша схема цветов должна установить цвета для этой группы с помощью команды :highlight .

0

Начните с главы о написании собственного синтаксического плагина :help usr_44.txt в документации. С вашими простыми требованиями, вероятно, достаточно выбрать некоторые соответствующие части из $VIMRUNTIME/syntax/html.vim . Затем вы можете искать любые конкретные темы с помощью :help :syn-...

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

:hi link htmlTag Normal
:hi link htmlTitle Normal

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