2017-08-24 97 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