1

Мне нравится подсветка синтаксиса htmldjango.vim за исключением нескольких вещей.

1) Он выделяет все переменные (независимо от того, что начинается с {{или {% и заканчивается на}} или%}) белым цветом и дает красный шрифт. Я хочу, чтобы все переменные были только желтыми.

2) Он окрашивает все открывающие теги (<и>) в желтый и все конечные теги (</ и>) в красный. Я хочу, чтобы они оба были голубыми.

3) В теге <head> он почему-то выделяет все отступы белым цветом. Я не хочу этого делать.

4) подчеркивает все названия ссылок. (пример: <a href = 'link'> linkName </ a>) Я тоже этого не хочу.

Как видите, я хочу внести небольшие изменения. Я попытался открыть htmldjango.vim и отредактировать его, но я понятия не имею, где он определяет цвет тегов. htmldjango.vim говорит это

syn cluster djangoBlocks add=djangoTagBlock,djangoVarBlock,djangoComment,djangoComBlock
syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display containedin=ALLBUT,@djangoBlocks
syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display containedin=ALLBUT,@djangoBlocks
syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks
syn region djangoComBlock start="{#" end="#}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks

Я предполагаю, что это где теги определены. Но как мне изменить, какие метки окрашены, а какие нет? Я даже попытался открыть html.vim и прочитать его, и кажется, что даже в html.vim он не определяет фактические цвета (я не смог найти название какого-либо цвета или шестнадцатеричный код любого цвета ни в html.vim или htmldjango.vim). Где находится файл, который определяет цвета тегов / переменных в htmldjango.vim?

1 ответ1

1

Во-первых, не вносите никаких изменений в исходные файлы синтаксиса ! Вы пожалеете об этом, когда обновите свой Vim.

Если вам нужно внести дополнения / адаптации, у Vim есть механизм для этого. Просто поместите дополнительные команды :syntax в ~/.vim/after/syntax/htmldjango.vim (обратите внимание на использование каталога after ), и он будет автоматически включен Vim.

Если вам не нужно анализировать какой-либо дополнительный синтаксис, а просто изменить цвета, это делается с помощью команд :hi / :HtmlHiLink . Поскольку htmldjango.vim является просто расширением html.vim , они встречаются в последнем.

Чтобы изменить цвета, вам нужно выяснить, какая группа синтаксиса вызывает выделение. :syn list показывает все активные группы, но это проще, когда вы устанавливаете SyntaxAttr.vim - Показать атрибуты подсветки синтаксиса символа под плагином курсора . Если у вас есть имя группы синтаксиса, которая нарушает работу, вы можете переопределить выделение, например:

Это оригинальное определение:

HtmlHiLink htmlTag                     Function
HtmlHiLink htmlEndTag                  Identifier

Очевидно, ваша цветовая схема (еще одна абстракция) окрашивает Function желтый и Identifier красный. Чтобы переопределить это только для HTML (Django), вы должны выбрать другую группу из вывода команды plain :hi , выбрать, например, Special а затем переопределить через это:

hi link htmlTag Special
hi link htmlEndTag Special

Вы можете поместить их в упомянутый ~/.vim/after/syntax/htmldjango.vim или также просто в свой ~/.vimrc .

Чтобы удалить все выделения из группы, используйте :hi link htmlGroupHere NONE .

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