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