4

在 sublime text 中的某些主题中,某些标签(如 script 或 php)中区域的背景颜色与其余代码的颜色不同。例如像 iPlastic 或 twilight 主题中的那样。

例如:http: //imageshack.us/photo/my-images/541/screenshot20130207at342.png/

我希望在默认没有这个的 Tomorrow 配色方案中达到同样的效果。我知道我必须编辑 .tmTheme 文件,但我不确定我应该输入的代码。

任何帮助将非常感激。

谢谢!

4

2 回答 2

4

您应该在文件中添加类似这样的.tmTheme内容:

<dict>
    <key>name</key>
    <string>Embedded source</string>
    <key>scope</key>
    <string>text source</string>
    <key>settings</key>
    <dict>
        <key>background</key>
        <string>#FCFCFC</string>
    </dict>
</dict>

当然,您可以设置您喜欢的颜色。

于 2013-02-07T12:00:56.407 回答
0

使用 Sublime 打开.tmTheme要编辑的文件,首先用不同的名称(但扩展名相同)保存它。然后寻找这个:

<string>text source</string>

这仅存在于某些文件中.tmTheme!在iPlastic.tmTheme您提到的文件文件中,您将在此条目中找到它:

    <dict>
        <key>name</key>
        <string>Embedded source</string>
        <key>scope</key>
        <string>text source</string>
        <key>settings</key>
        <dict>
            <key>background</key>
            <string>#FAFAFAFC</string>
            <key>foreground</key>
            <string>#000000</string>
        </dict>
    </dict>

如果.tmTheme文件是用 JSON 而不是这种笨拙的 XML 编写的,则条目将如下所示:

{
    "name": "Embedded source",
    "scope": "text source",
    "settings": {
        "background": "#FAFAFAFC",
        "foreground": "#000000"
    }
},

在这种情况下,背景值几乎是白色的(所有三个通道中都是 0xFA),但有点透明(0xFC 不透明度)。结果取决于background您在文件开头找到的值,在这种情况下是#EEEEEEEB(注意没有nameand scope):

    <dict>
        <key>settings</key>
        <dict>
            <key>background</key>
            <string>#EEEEEEEB</string>

据我所知,这里忽略了 0xEB 不透明度,因为默认背景是#EE. #FA具有 0xFC 的不透明度被合成#EE#F9(这是有道理的)。

现在,如果您想将作用域的背景强制为某个值,则必须在存在时更改其条目,如果不存在则添加它。text source<dict>

另一方面,如果您想让text source范围的背景与其余所有内容相同,您只需删除它的<dict>条目即可。

请记住,一个 3 字节的值 like#AABBCC是 100% 不透明的,即它的不透明度为 0xFF,即它相当于 4 字节的值#AABBCCFF

Keep also in mind that you may put the modified .tmTheme file underneath, e.g., the PHP subdirectory of Packages, instead of the Color Scheme - Default subdirectory. This is particularly useful for PHP, where the default background is the one outside of <?php...?>, while the one inside is the one of the text source scope (this is an artifact of the trick used in order to inherit the settings for the HTML file type). Unless your PHP files contain lots of HTML (or whatever you have outside <?php...?>), you might want to put underneath PHP a theme with a background value for text source equal to the default background value for other file types, and a different default background value just for PHP files.

于 2014-08-25T02:46:40.213 回答