【问题标题】:Automatic change of color at the set words in Sublime TextSublime Text 中设置的单词自动更改颜色
【发布时间】:2016-06-30 18:07:18
【问题描述】:

(英语不是我的母语)

你好。例如,我通过 Sublime Text 3 打开的文档中的字符集test 对我来说是必要的,它始终是橙色的; <example> — 总是红色,@stackoverflow — 总是蓝色,等等。我想要颜色,而不是 highlight。对我来说不是很重要,会在所有配色方案中立即更改或仅在我使用的配色方案中更改。

我的目的——我想在 Sublime Text 中拥有一个简单的 ToDo-manager,其中多色的单词将扮演标签的角色,并且我可以轻松地在它们上进行引导。插件PlainTasks不适合我。

是否可以用某些颜色绘制自定义单词?谢谢。

【问题讨论】:

    标签: sublimetext3 sublimetext


    【解决方案1】:

    跟进 ig0774 的 answer,以下是一些具体的操作示例。首先,使用 YAML 语法和以下内容在 Sublime 中创建一个新文件:

    %YAML 1.2
    ---
    # http://www.sublimetext.com/docs/3/syntax.html
    name: ToDo Manager
    file_extensions:
      - todo
    scope: text.todo
    contexts:
      main:
        - match: (?i)\btest\b
          scope: meta.test
        - match: (?i)\bstackoverflow\b
          scope: meta.stackoverflow
        - match: (?i)\bexample\b
          scope: meta.example
    

    您可以将name 更改为您想要的任何内容,并为您的文件修改file_extensions。然后,将文件保存在您的Packages/User 文件夹(可以通过选择Preferences -> Browse Packages... 找到)中为ToDo Manager.sublime-syntax

    现在是配色方案。我们在这里假设您使用的是默认的 Monokai 配色方案。实际的.tmTheme 文件包含在.sublime-package 存档中,因此要访问它,您需要安装PackageResourceViewer 插件。安装后,打开命令面板并输入 prv 以调出 PackageResourceViewer 选项。选择Edit Package Resource,导航到Color Scheme - Default,然后向下滚动并选择Monokai.tmTheme。如果您使用的是其他默认配色方案,请改为选择该文件。如果您安装了配色方案,请先打开该软件包,然后选择相应的 .tmTheme 文件。

    如果 .tmTheme 文件没有语法高亮,请选择 XML。接下来,向下滚动到最后。最后 5 行应如下所示:

        </array>
        <key>uuid</key>
        <string>06CD1FB2-A00A-4F8C-97B2-60E131912345</string>
    </dict>
    </plist>
    

    虽然uuid 可能会有所不同。在&lt;/array&gt;之前插入以下内容:

            <dict>
                <key>name</key>
                <string>test</string>
                <key>scope</key>
                <string>meta.test</string>
                <key>settings</key>
                <dict>
                    <key>background</key>
                    <string></string>
                    <key>fontStyle</key>
                    <string></string>
                    <key>foreground</key>
                    <string>#FF8000</string>
                </dict>
            </dict>
            <dict>
                <key>name</key>
                <string>stackoverflow</string>
                <key>scope</key>
                <string>meta.stackoverflow</string>
                <key>settings</key>
                <dict>
                    <key>background</key>
                    <string></string>
                    <key>fontStyle</key>
                    <string></string>
                    <key>foreground</key>
                    <string>#0FD7FF</string>
                </dict>
            </dict>
            <dict>
                <key>name</key>
                <string>example</string>
                <key>scope</key>
                <string>meta.example</string>
                <key>settings</key>
                <dict>
                    <key>background</key>
                    <string></string>
                    <key>fontStyle</key>
                    <string></string>
                    <key>foreground</key>
                    <string>#FF0000</string>
                </dict>
            </dict>
    

    现在,选择File -&gt; Save,它将被保存在正确的位置,覆盖.sublime-package 中的文件。最后,打开一个.todo 文件并选择View -&gt; Syntax -&gt; Open all with current extension as... -&gt; User -&gt; ToDo Manager,您应该会看到类似这样的突出显示:

    【讨论】:

      【解决方案2】:

      您需要定义自定义语法来解析您创建/生成的文件。如果您使用的是 SublimeText 3 build 3103 或更高版本,您可以使用 new .sublime-syntax 文件格式或更早的版本,tmLanguage 格式,它将范围与文本相关联。然后,您的样式文件会将颜色与您定义的范围相关联。最好使用众所周知的范围,例如在第二个链接的命名约定部分下定义的范围,这样,无论定义什么样式,您都会得到适当的突出显示。

      小结:样式文件将外观与特定范围相关联。范围在语法文件中定义,它告诉 SublimeText 匹配什么文本以及将其关联到什么范围。 Here 是一些关于样式文件格式的 Sublime 相关文档(.tmTheme)。

      【讨论】:

      • 我很抱歉,是否可以设置一个具体的例子,我必须如何进行更改?例如,我希望标签 &lt;test&gt; 始终为橙色,标签 &lt;stackoverflow&gt; 始终为蓝色。我使用的是 Sublime Text build 3103。这样简单的功能对我来说是必需的。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      相关资源
      最近更新 更多