Python 如何在Sublime Text 2中检测设置用户设置事件

Python 如何在Sublime Text 2中检测设置用户设置事件,python,sublimetext,event-listener,sublime-text-plugin,Python,Sublimetext,Event Listener,Sublime Text Plugin,我想处理一个事件,当我更改首选项中的color\u scheme设置时会触发该事件。我正在为一个插件编写升华设置 我必须使用EventListener的on\u window\u命令,但它似乎没有启动 class MyPluginEvents(sublime_plugin.EventListener): def on_window_command(self, window, command_name, args): print " --- FIRE! --- " 我还尝

我想处理一个事件,当我更改
首选项中的
color\u scheme
设置时会触发该事件。我正在为一个插件编写升华设置

我必须使用
EventListener
on\u window\u命令
,但它似乎没有启动

class MyPluginEvents(sublime_plugin.EventListener):
    def on_window_command(self, window, command_name, args):
        print " --- FIRE! --- "

我还尝试了
post\u window\u命令
,但没有成功。有没有办法检测首选项何时更改?

您链接到的那些文档是用于ST3的。这是ST2的文件。注意,窗口命令上没有
。除此之外,您可能需要查看
设置#添加更改
。我以前从未在API中使用过该方法,但根据描述,它应该可以满足您的需要

编辑

知道您已经有了解决方案,但是为其他任何人添加此解决方案。 您可能会绑定到一个事件,例如加载时的
或新建时的
,因此该命令将在任何新创建的视图上运行

import sublime_plugin

class TestCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        settings = self.view.settings()
        settings.add_on_change("color_scheme", self.callback)

    def callback(self):
        print(self.view.settings().get("color_scheme"))

您链接到的那些文档是用于ST3的。这是ST2的文件。注意,窗口命令上没有
。除此之外,您可能需要查看
设置#添加更改
。我以前从未在API中使用过该方法,但根据描述,它应该可以满足您的需要

编辑

知道您已经有了解决方案,但是为其他任何人添加此解决方案。 您可能会绑定到一个事件,例如加载时的
或新建时的
,因此该命令将在任何新创建的视图上运行

import sublime_plugin

class TestCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        settings = self.view.settings()
        settings.add_on_change("color_scheme", self.callback)

    def callback(self):
        print(self.view.settings().get("color_scheme"))

谢谢,我来看看!我不知道该如何在
add\u on\u change
中注册回调,你能帮我举个例子吗?我用
on\u deactivated
做过,我知道你有一个解决方案,但如果你愿意看的话,我添加了一个例子。谢谢,我会看的!我不确定如何在
add\u on\u change
中注册回调,你能帮我举个例子吗?我用
on\u deactivated
做过,我知道你有一个解决方案,但如果你愿意看的话,我添加了一个例子。