Sublime Text Editor 3 - 主题 - 更改文档字符串颜色

时间:2014-02-08 16:43:08

标签: python themes sublimetext sublimetext3

我正在使用 Linux 的崇高文本编辑器3。我用它来编写 Python 代码。我希望能够在不更改常规注释(#)的颜色的情况下将文档字符串的颜色更改为其他颜色。我查看了.tmTheme文件但是我在那里找不到关于docstring的颜色的任何内容。但是,有一个主题显然有两种不同的颜色用于docstring和常规注释。

enter image description here

如何修改主题以使文档字符串和注释是两种不同的颜色?

4 个答案:

答案 0 :(得分:2)

我已经开发了Neon Color SchemePython Improved语言定义来专门制作Python,并且尽可能多地使用其他语言,尽可能使用尽可能多的范围。它还包括文档字符串和注释的不同颜色:

Neon and Python Improved

以下是docstrings的.tmTheme文件中的条目:

<dict>
    <key>name</key>
    <string>docstring</string>
    <key>scope</key>
    <string>string.quoted.double.block, string.docstring, string.quoted.single.block</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string>italic</string>
        <key>foreground</key>
        <string>#218B97</string>
    </dict>
</dict>

和定期评论:

<dict>
    <key>name</key>
    <string>Comment</string>
    <key>scope</key>
    <string>comment</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string>italic</string>
        <key>foreground</key>
        <string>#7F817E</string>
    </dict>
</dict>

而且,如果你想让你的引号脱颖而出:

<dict>
    <key>name</key>
    <string>String Quotes</string>
    <key>scope</key>
    <string>string.quoted punctuation.definition.string.begin, string.quoted punctuation.definition.string.end</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string>italic</string>
        <key>foreground</key>
        <string>#FF07A2</string>
    </dict>
</dict>

答案 1 :(得分:0)

我发现this answer基本上建议您更改tmTheme中的条目:在Comment定义中,添加python docstring字符串。

    <dict>
        <key>name</key>
        <string>Comment</string>
        <key>scope</key>
        <string>comment, string.quoted.double.block.python</string>
        <key>settings</key>
        <dict>
            <key>foreground</key>
            <string>#757575</string>
        </dict>
    </dict>

要轻松更改您的tmTheme,PackageResourceViewer(在this question中接受的答案中提及)效果很好。

这会将您的docstring更改为与注释相同的颜色。我没有对此进行测试,但我假设制定了一个新的定义,如

    <dict>
        <key>name</key>
        <string>Python-Docstring</string>
        <key>scope</key>
        <string>string.quoted.double.block.python</string>
        <key>settings</key>
        <dict>
            <key>foreground</key>
            <string>#FFFFFF</string>
        </dict>
    </dict>

将允许您指定新颜色。

答案 2 :(得分:0)

如果您想修改其中一个默认配色方案,您应该在StackOverflow上关于安装PackageResourceViewer的答案,这将允许您打开默认配色方案并进行编辑。安装PackageResourceViewer后,只需按⌘+ Shift + P并搜索PackageResourceViewer:Open Resource → Color Scheme - Default → THEME,其中THEME是您要编辑的主题。这将打开一个.tmTheme文件,其中包含该主题的所有当前设置。如果要更改任何特定于语言的语法突出显示,则需要知道sublime-syntax文件调用要更改的语法的名称。 syntax definition files for Sublime Text托管在GitHub上,并显示哪个正则表达式用于定义该语言的各种语法。要更改Python语言文档字符串,我们可以查看Python.sublime-syntax文件,其中显示meta_scope: comment.block.documentation.python。这意味着我们需要使用comment.block.documentation.python作为我们.tmTheme文件中设置的范围,我们可以为其提供任何我们想要的设置。因此,要更改文档字符串,应将此文本块添加到.tmTheme文件中:

<dict>
    <key>name</key>
    <string>Python-Docstring</string>
    <key>scope</key>
    <string>comment.block.documentation.python</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FFFFFF</string>
    </dict>
</dict>

我们将此样式更改的名称指定为Python-Docstring(Sublime Text忽略此字段),我们告诉它我们将通过将范围设置为{{1}来使用python使用中的docstrings语法高亮显示我们正在更改该范围内的设置以生成前景文本comment.block.documentation.python。我建议将此文件保存在#FFFFFF中,以便将来更容易访问,并且不会覆盖默认主题。最后在Sublime Text中,您转到/Users/USERNAME/Library/Application Support/Sublime Text 3/Packages/User并选择主题!

答案 3 :(得分:-1)

我知道这个帖子已经老了,但我有同样的问题,无法改变颜色。所以这就是它对我有用的方式,我希望它会对某些人有所帮助。这些是我通过资源查看器输出的行:

<dict>
        <key>name</key>
        <string>docstring</string>
        <key>scope</key>
        <string>string.quoted.double.block, comment.block.documentation, string.quoted.single.block</string>
        <key>settings</key>
        <dict>
            <key>fontStyle</key>
            <string>italic</string>
            <key>foreground</key>
            <string>#03FFA7</string>
        </dict>
    </dict>

<dict>
        <key>name</key>
        <string>String Quotes</string>
        <key>scope</key>
        <string>comment.block.documentation punctuation.definition.comment.begin, comment.block.documentation punctuation.definition.comment.end,
                ,string.quoted punctuation.definition.string.begin, string.quoted punctuation.definition.string.end</string>
        <key>settings</key>
        <dict>
            <key>fontStyle</key>
            <string>italic</string>
            <key>foreground</key>
            <string>#1FFF0F</string>
        </dict>
    </dict>