有没有办法为不同的文件源使用不同的Sublime Text主题?

时间:2015-01-08 17:59:16

标签: sublimetext sublimetext3

我想在ST3中设置两个单独的主题。一个主题是本地文件,而第二个主题是通过我的FTP应用程序打开的任何文件(传输)。这可能吗?

最简单的解决方案可能覆盖来自FTP缓存文件夹的任何文件。但我不知道这是否可能。

1 个答案:

答案 0 :(得分:1)

是的,这可以通过一个相当简单的插件实现。在Sublime中打开一个新的Python文件,并添加以下内容:

import sublime
import sublime_plugin


class TransmitColorSchemeCommand(sublime_plugin.TextCommand):

    def run(self, edit):
        if "/path/to/transmit/tempfiles" in self.view.file_name():
            self.view.settings().set("color_scheme", "Packages/Color Scheme - Default/Monokai.tmTheme")


class TransmitEventListener(sublime_plugin.EventListener):

    def on_load_async(self, view):
        view.run_command("transmit_color_scheme")

确保将"/path/to/transmit/tempfiles"调整为所需的实际路径,并将"color_scheme"设置更改为要用于传输文件的颜色方案。将文件另存为Packages/User/transmit_color_scheme.py,其中Packages是选择 Preferences -> Browse Packages... 菜单选项时打开的文件夹。在OS X上,它是~/Library/Application Support/Sublime Text 3/Packages

保存后,事件侦听器将立即启动,并且您打开的包含指定路径的任何文件都将颜色方案设置为您指定的任何颜色方案。来自其他路径的所有其他文件将使用您的默认颜色方案。

玩得开心!


请注意,此插件仅适用于ST3。要使其在ST2中有效,请将def on_load_async更改为def on_load