2017-08-24 301 views
2

如何在Sublime Text 3中更改CSS属性的颜色方案?

我已经修改Monokai.tmTheme并更改了默认的Library variableVariable的颜色。Sublime Text 3 - CSS属性的颜色方案

<dict> 
    <key>name</key> 
    <string>Library variable</string> 
    <key>scope</key> 
    <string>support.other.variable</string> 
    <key>settings</key> 
    <dict> 
     <key>fontStyle</key> 
     <string>italic</string> 
     <key>foreground</key> 
     <string>#FFB6C1</string> 
    </dict> 
</dict> 
<dict> 
    <key>name</key> 
    <string>Variable</string> 
    <key>scope</key> 
    <string>variable</string> 
    <key>settings</key> 
    <dict> 
     <key>fontStyle</key> 
     <string>italic</string> 
     <key>foreground</key> 
     <string>#FFB6C1</string> 
    </dict> 
</dict> 

通过改变内部<dict>最后<string>你可以看到here变量的缺省白色变为粉红色。

我想更改CSS属性的默认蓝色,但找不到其相关的标记字符串名称。

+1

如果将光标置于其中一个属性的顶部并选择“工具>开发人员>显示范围名称”,弹出窗口会告诉您适用于该范围的范围。 – OdatNurd

+1

非常感谢@OdatNurd,它工作正常。范围名称是'support.type,support.class'。 – aaawww

+0

[Sublime Text - 修改tmTheme文件]可能的副本(https://stackoverflow.com/questions/37406338/sublime-text-modifying-tmtheme-file) –

回答

0

如您所见,这些.tmTheme文件采用PList XML格式。对于配色方案,<key>name</key>之后的<string>实际上只是一条评论,并且在大多数情况下,name键可能完全丢失,因此最好直接注意<key>scope</key>之后的<string>

该字符串是scope selector, and I have explained how they work in a separate answer。从这个答案的重要外卖是:

在崇高的文本,可以通过转到工具菜单查找的字符光标右侧的范围 - >开发 - >显示范围名称。

这将向您显示全范围堆栈,但通常我们只对color scheme目的的最后一个范围感兴趣。例如,不建议直接对meta作用域着色,但可以将它与非超范围一起使用以获得更精确的着色。请参阅官方Scope Naming documentation了解更多详情。

所以(A语法定义范围分配到你的文档中的文本,配色方案指定的颜色使用上述范围内选择的范围。)

的CSS属性,全部范围可能看起来像source.css meta.property-list.css meta.property-name.css support.type.property-name.css。如果要仅更新CSS属性的颜色,而不更新其他语法中具有相同support.type范围的其他元素,则可以使用support.type.property-namesupport.type.property-name.css作为范围选择器。否则,您应该发现配色方案在某处已经匹配supportsupport.type,并且可以更改与此相关的颜色。

就像在CSS中,scope selectors also have specificity rules一样,但这对于简单的单一范围选择器来说基本上是不相关的。这意味着,最好检查颜色方案是否与要更改颜色的范围相匹配 - 如果是,则更新该颜色,否则通常可以相应地添加一个新的<dict>,直到结束其他规则之后的文件。

这些dict的最小内容为范围,并且settings子字典通常与​​集合一起使用。本答案中较早链接的官方配色方案文档将更详细地介绍。

<dict> 
    <key>scope</key> 
    <string>support.type.property-name.css</string> 
    <key>settings</key> 
    <dict> 
     <key>foreground</key> 
     <string>#FFB6C1</string> 
    </dict> 
</dict> 
+0

非常好的解释@凯斯,谢谢! – aaawww