我正在尝试创建一个插件来根据当前操作系统切换 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() 方法,但这似乎真的很hacky。
我想将其扩展为一个更充实的插件,以便您可以为 Windows 和 OSX 进行完整配置,并始终根据当前操作系统正确加载它们。让它在启动时自动运行是关键。
我也尝试在我的 /Packages/User 文件夹中制作Preferences (Windows).sublime-settings
和Preferences (OSX).sublime-settings
,但它们似乎没有被拾取。其他人也注意到了这个问题:http ://www.sublimetext.com/forum/viewtopic.php?f=2&t=5135
任何关于如何让这个插件在启动时运行的想法将不胜感激。非常感谢。