我正在尝试创建一个插件来根据当前操作系统切换font_face设置。我使用Dropbox来同步我的所有设置,我在工作时使用Mac,在家中使用Windows。我相信我已经创建了一个可以工作的插件(虽然可能并不完美,因为这是我第一次尝试使用插件和python!)但是当我尝试让它在Sublime Text 2启动时运行时,问题出现了。
我似乎已经搜索到了互联网的终点,并且未能找到一篇关于“在启动时运行插件”的文章,这让我觉得这是不可能的,或者这样做很容易一个人想过要写一下。
这是我的代码:
import sublime
import sublime_plugin
class OsFontSwitcherCommand(sublime_plugin.ApplicationCommand):
def run(self):
s = sublime.load_settings("Preferences.sublime-settings")
if sublime.platform() == "osx":
s.set("font_face", 'Courier')
else:
s.set("font_face", 'Consolas')
sublime.save_settings("Preferences.sublime-settings")
这很好用,但每次启动程序时我都必须手动调用它。
我可以通过执行以下操作让插件在加载后立即运行,但它似乎在默认和用户设置实际加载之前运行,结果是它清除了我的所有其他设置:
import sublime
import sublime_plugin
s = sublime.load_settings("Preferences.sublime-settings")
if sublime.platform() == "osx":
s.set("font_face", 'Courier')
else:
s.set("font_face", 'Consolas')
sublime.save_settings("Preferences.sublime-settings")
我考虑使用set_timeout()方法,但这看起来真的很糟糕。
我想将其扩展为更加丰富的插件,以便您可以对Windows和OSX进行完整配置,并让它们始终根据当前操作系统正确加载。让它在启动时自动运行是关键。
我还尝试在我的/ Packages / User文件夹中创建Preferences (Windows).sublime-settings
和Preferences (OSX).sublime-settings
,但它们似乎没有被提取。其他人也注意到了这个问题:http://www.sublimetext.com/forum/viewtopic.php?f=2&t=5135
如何在启动时运行此插件的任何想法都将非常感激。 非常感谢。
答案 0 :(得分:2)
我知道这是一个老问题,原始海报询问Sublime Text 2,但我刚刚为自己解决了类似问题,Sublime Text 3提供了一种方便的方法。
如果您定义了模块级plugin_loaded
函数,Sublime Text 3将在您的插件加载时执行您的代码。
我写了blog post about this with more details and some sample code。