1

我正在为 sublime text 开发几个包,为了避免复制和粘贴大量代码,我开始将我的类移动到单独的文件中。到目前为止,我一直在避免这种情况,因为在我当前的工作流程中,对不在主插件文件中的文件所做的更改在保存时不会得到更新,只有在我重新启动 sublime 时才会生效。

有没有办法在不重新启动 Sublime Text 的情况下重新加载一个包,包括它的所有文件?

4

3 回答 3

2

您实际上不必重新启动编辑器。您将不得不重组您的插件以利用这一点。本质上,您可以从某个顶级文件加载插件文件。例如,看一下Package Control。我也在PersistentRegexHighlight中执行此操作(尽管包控制解决方案可能更强大(我确实以此为基础)。仍然不如简单地保存特定文件,但比重新启动更好!事实上,您可能会绑定到on_post_save修改子文件时自动保存顶级文件的事件。

于 2013-10-23T03:12:40.297 回答
2

我个人发现最简单的解决方案是安装Package Reloader,然后将一个新文件放在我的插件的顶层目录中,名为.build. 保存您的顶级插件文件,无需重新启动。

几乎不需要重构代码。

于 2014-01-08T23:51:59.677 回答
0

来自非官方文档

Sublime Text 会在包发生变化时从包中重新加载顶级 Python 模块(可能是因为您正在编辑 .py 文件)。相比之下,Python 子包不会自动重新加载,这可能会在您开发插件时导致混乱。一般来说,最好在对插件文件进行更改后重新启动 Sublime Text,这样所有更改才能生效。

不幸的是,插件没有加载到控制台(Ctrl`)可见的范围内,所以你不能只是reload()它。编辑但是,您可以从顶级插件文件中调用reload(),如@skuroda 的回答中所述。

您必须决定何时将类分解为单独的文件,还是将它们放在一个单一的集合中。拥有 50 个文件,每个文件只有两个或三个函数定义在一个方向上是多余的,而在一个文件中拥有 20 个类,每个类都有 10 或 15 个方法,在另一个方面就太过分了,所以只做对特定项目感觉最好的事情。根据我的经验,在任何受支持的操作系统中杀死/重新启动 ST2 都不会花费太长时间(XP 除外,出于某种原因......),所以希望这不会对您的工作流程造成太大延迟。如果您的启动时间太长,我会给出的一个建议是创建一个便携式安装(如果您在 Windows 上),只需使用额外插件中的基本要素。

祝你好运!

于 2013-10-22T18:50:24.400 回答