我使用 vim 并输入大量 Django html 代码,但我不喜欢 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 %}
那么将它涂成黄色吗?如果它是链接或链接名称,那么将它涂成红色吗?
答案1
:help usr_44.txt
从文档中关于编写自己的语法插件的章节开始。根据你的简单要求,从中挑选一些相关部分可能就足够了$VIMRUNTIME/syntax/html.vim
。然后你可以通过以下方式查找任何特定主题:help :syn-...
请注意,默认语法插件已经花费了大量精力和调整;我自己也在用它,对它很满意。如果你觉得它太“花哨”,也就是说它突出了太多不同的部分,你可以保留语法并重新定义一些语法组来使用相同的突出显示组,例如
:hi link htmlTag Normal
:hi link htmlTitle Normal
答案2
首先,您需要设置一系列正则表达式来定义要突出显示的文本区域,如 中所述:help syntax
。将这些突出显示组链接到其中一个公共组,如 中所述:help group-name
。然后您的 colorscheme 应该使用命令为该组设置颜色:highlight
。