在 Sublime Startup 上启用自动保存文件插件

Enable Autosave files plugin on Sublime Startup

如何在 Sublime Text 3 启动时自动启用 Sublime Text 的 AutoSave 插件?

link to auto-save is here

这个特定的包并不天真地支持在 Sublime 启动时自动启用自身的想法,因此为了实现这一点,需要一个小插件来实现这一点,我已经在下面发布了。

为了使用这个插件,select Tools > Developer > New Plugin... 从菜单中,然后用下面的代码替换呈现给您的存根插件代码,并将文件保存在 Sublime 指定的位置将默认为(您的 User 包)作为 Python 文件,例如 auto_save_on_startup.py

注意: 请参阅下面的编辑;这个插件需要你添加一个设置来控制它是否启用。

import sublime
import sublime_plugin

# Sublime executes this every time it loads the plugin, which includes when
# it first starts, as well as whenever the this file changes on disk.
def plugin_loaded():
    settings = sublime.load_settings("auto_save.sublime-settings")
    # See if auto_save_toggle_at_startup is turned on; default it to
    # not being turned on if the setting is missing, because that is
    # how the package would behave if you didn't add the setting.
    if settings.get("auto_save_toggle_at_startup", False):
        sublime.set_timeout(lambda: sublime.run_command("auto_save"), 1000)

编辑: 原版插件直接调用run_command;但是 Sublime 在完全添加插件提供的所有命令 类 之前调用 plugin_loaded 端点,因此它有可能在可用之前尝试 运行 命令。

上面的代码已经过修改,因此在命令触发之前会施加延迟,从而使命令有时间可用。


如评论所示,每次 Sublime 加载插件文件时,它都会执行该插件文件中的 plugin_loaded() 函数,如果它恰好存在的话。

这里的代码检查自动保存包设置,看看你是否已经将值 auto_save_toggle_at_startup 设置为 true,如果你有,它将调用来自自动保存包的命令它在。

因此,您还需要从菜单中 select Preferences > Package Settings > Auto-save > Settings - User 并添加适当的设置。如果您使用的是 MacOS,则首选项位于菜单中 Sublime Text 下。

如果出现空文件(因为您使用的是默认设置),则应在文件中输入以下内容并保存。否则,您可以将设置本身添加到现有设置中。

{
    // Toggle auto save at startup (from User/auto_save_on_startup.py)
    "auto_save_toggle_at_startup": true
}

这里的注释提醒你这个设置是由包本身之外的东西提供的,以防你忘记。

由于插件命令只会在加载时切换自动保存的状态,你要么必须在添加插件之前添加设置,保存插件文件让 Sublime 在设置完成后重新加载它放置,或者重启 Sublime。

或者,您可以将 plugin_loaded() 函数替换为仅包含 run_command 行,以无条件地始终在启动时切换状态,但您可能希望在某些时候暂时停止它执行此操作未来,只需切换设置即可轻松实现。