我正在为sublime文本开发一些软件包,为了避免复制和粘贴大量代码,我开始将我的类移动到单独的文件中。到目前为止,我一直在避免这种情况,因为在我当前的工作流程中,对主要插件文件中没有的文件的更改在保存时不会更新,只有在重新启动sublime时才会生效。
有没有办法重新加载包,包括它的所有文件,而无需重新启动Sublime Text?
答案 0 :(得分:2)
您实际上不必重新启动编辑器。您将不得不重新构建插件,以利用此功能。基本上,您可以从某个顶级文件加载插件文件。举个例子,看一下Package Control。我也是在PersistentRegexHighlight中做的(尽管包控制解决方案可能更强大(我确实基于此)。仍然不如简单地保存特定文件,但比重启更好!事实上,你可以可能会绑定到on_post_save
事件,以便在修改子文件时自动保存顶级文件。
答案 1 :(得分:2)
我个人发现最简单的解决方案是安装Package Reloader,然后将新文件放在名为.build
的插件的顶层目录中。保存您的顶级插件文件,享受不必重新启动。
几乎不需要重构代码。
答案 2 :(得分:0)
Sublime Text会在程序包更改时重新加载顶级Python模块(可能是因为您正在编辑.py文件)。相比之下,Python子包不会自动重新加载,这会在您开发插件时导致混淆。一般来说,最好在对插件文件进行更改后重新启动Sublime Text,这样所有更改都会生效。
不幸的是,插件没有加载到从控制台可见的范围内( Ctrl `),所以你不能只是reload()
它。 编辑但是,您可以从您的顶级插件文件中调用reload()
,详见@ skuroda的answer。
您必须决定何时将类分解为单独的文件,而不是将它们保存在一个整体集合中。拥有50个文件,每个只有两个或三个函数定义在一个方向上是过度的,而在一个文件中有20个类,每个有10或15个方法,在另一个文件中是过分的,所以只做最适合特定项目的事情。根据我的经验,杀死/重启ST2在任何支持的操作系统中都不会花费太长时间(除了XP,出于某种原因......),所以希望你的工作流程没有太大的延迟。我给出的一个建议是创建一个便携式安装(如果你在Windows上),如果你的启动时间太长,只需要额外的插件中的基本要素。
祝你好运!