编辑 htmldjango.vim 文件

编辑 htmldjango.vim 文件

除了少数情况外,我喜欢 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

第一的,不要对原始语法文件做任何更改!当你更新 Vim 时,你会后悔这一点。

如果你需要添加/修改,Vim 有一个机制。只需将附加:syntax命令放入~/.vim/after/syntax/htmldjango.vim(注意使用目录),它将被 Vim 自动包含。

如果你不需要解析没有任何附加语法,但只需更改颜色,这是通过:hi/:HtmlHiLink命令完成的。由于htmldjango.vim只是 的扩展html.vim,因此这些可以在后者中找到。

要更改颜色,您需要找出导致突出显示的语法组。:syn list显示所有活动组,但当您安装SyntaxAttr.vim - 显示光标下字符的语法高亮属性插件。当您知道有问题的语法组的名称时,您可以重新定义突出显示,例如:

这是原始定义:

HtmlHiLink htmlTag                     Function
HtmlHiLink htmlEndTag                  Identifier

显然,你的色彩方案(又一个抽象)绘制Function黄色和Identifier红色。要为 HTML(Django)覆盖此功能,您需要从纯:hi命令的输出中选择另一个组,选择 eg Special,然后通过以下方式重新定义:

hi link htmlTag Special
hi link htmlEndTag Special

您 可以 将 那些 放入 所 提到 的~/.vim/after/syntax/htmldjango.vim, 或 也 可以 放入 您的~/.vimrc.

要从组中删除所有突出显示,请使用:hi link htmlGroupHere NONE

相关内容