Sublimetext2 修改HTML标记的升华文本语法高亮显示

Sublimetext2 修改HTML标记的升华文本语法高亮显示,sublimetext2,sublimetext,color-scheme,Sublimetext2,Sublimetext,Color Scheme,我已经为Sublime Text 2尝试了许多颜色方案,我发现了一些适合javascript和php的颜色方案,但它们在HTML中的文本和标记之间也有着可怕的区别 我想做的是使HTML标记与开始和结束标记的颜色相同()。现在,左、右V字形显示为与纯文本相同的颜色,读起来会让人眼花缭乱 配色方案 意识到这不是颜色方案,而是HTML的语法定义,我查看了~/Library/Application Support/Sublime Text 2/Packages/HTML/HTML.tmLanguage

我已经为Sublime Text 2尝试了许多颜色方案,我发现了一些适合javascript和php的颜色方案,但它们在HTML中的文本和标记之间也有着可怕的区别

我想做的是使HTML标记与开始和结束标记的颜色相同(
)。现在,左、右V字形显示为与纯文本相同的颜色,读起来会让人眼花缭乱

配色方案

意识到这不是颜色方案,而是HTML的语法定义,我查看了
~/Library/Application Support/Sublime Text 2/Packages/HTML/HTML.tmLanguage
来进行修改

问题是,XML文件中到处都是
,除了XML之外,没有其他文件本身的文档。有人知道我如何合并开始和结束标记定义,使其与标记本身相同吗

当然,另一个选项是编辑我喜欢的每个主题,并确保标签和chrevron的颜色相同,但我认为全局编辑在我的情况下更有意义

配色方案

例如,
Phoenix深蓝
通过使用以下定义解决了此问题

<dict>
    <key>name</key>
    <string>Variable, String Link, Tag Name</string>
    <key>scope</key>
    <string>variable, support.other.variable, string.other.link, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#787878</string>
    </dict>
</dict>

名称
变量、字符串链接、标记名
范围
变量,support.other.variable,string.other.link,entity.name.tag,entity.other.attribute-name,meta.tag,declaration.tag
设置
前景
#787878

如果发生进一步的
.tmLanguage
相关紧急情况,请注意。他们的例子是:一种比PLIST可读性大得多的格式,但不是一种崇高的文本可以适当利用的东西。ST2和ST3用户可以使用来编辑中的语法

正如您所提到的,并且正如我的正则表达式搜索
和(g | l)t,在Sublime Text 2(build 2221)
HTML.tmLanguage
语法文件中有太多的
标记分隔符。一些HTML标记和古怪的正则表达式标记上下文非常特殊,它们保证了一个唯一的表示,不幸的是,对我们来说,包括重新指定标记分隔符的范围和上下文,
,而不是连接到一些通用的不等式符号范围选择器

幸运的是,
的每个实例都有一个作用域名称
标点符号.definition.tag.??.html
,其中
??
可以是
开始
结束
,或者什么都没有。同样,每个HTML标记(
中的
HTML
)的命名非常类似于
entity.name.tag.HTML
。幸运是值得称赞的,是时候用正则表达式了

在您的
HTML.tmLanguage
文件中,为了安全起见,我建议将一个新文件克隆到
Packages/User
中,尽管您必须重命名该文件和语法-使用以下命令执行regex搜索所有有问题的作用域名称:

punctuation\.definition\.tag.*(?=</string>)
我已经用ST2的默认配色方案对此进行了测试,它应该可以用于其他编写良好的主题。这里有:


它甚至适用于崇高的文本3

ST2不再受支持(据我所知,也不再运行)。下面是一个快速的ST3解决方案

要自定义“标记”尖括号的颜色,必须使用前景键和颜色字符串为标记活动创建dict范围。下面是正确的语法

<dict>
<key>name</key>
<string>tag</string>
<key>scope</key>
<string>entity.name.tag, punctuation.definition.tag.begin, punctuation.definition.tag.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CCCCAA</string> <!-- custom tag color here -->
</dict>
</dict>

名称
标签
范围
entity.name.tag、标点符号.definition.tag.begin、标点符号.definition.tag.end
设置
前景
#CCCCAA
对这一范围进行了解释

更多的范围需要探索

<dict>
<key>name</key>
<string>tag</string>
<key>scope</key>
<string>entity.name.tag, punctuation.definition.tag.begin, punctuation.definition.tag.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CCCCAA</string> <!-- custom tag color here -->
</dict>
</dict>