Sublime Text 默认不自动保存,需手动配置 atomic_save 防崩溃丢数据,并安装 AutoSave 插件实现修改后延迟保存;插件支持延时、失焦保存及文件过滤,但无法毫秒级实时响应。

Sublime Text 默认不自动保存,必须手动配置
Sublime Text 本身没有“实时保存”开关,所谓实时保存其实是靠文件系统监听 + 自动写入实现的。它不像 VS Code 那样默认开启 files.autoSave,也不在设置里叫“实时保存”,而是通过启用 atomic_save 和搭配第三方插件来逼近这个效果。
开启 atomic_save 是基础,但只防崩溃丢数据
atomic_save 控制的是“写入是否原子化”:它让 Sublime 先写临时文件再替换原文件,避免编辑中途断电 / 崩溃导致文件损坏或清空。但它 ** 不会自动触发保存动作 **,仍需你按 Ctrl+S 或菜单操作。
- 在
Preferences → Settings的右侧用户设置中添加:"atomic_save": true - 仅对本地文件有效,网络路径(如
serverile.txt)或某些挂载卷可能不支持原子写入 - 开启后不会提升保存速度,反而在大文件上略慢一点——因为多了一次文件移动
用 AutoSave 插件模拟“修改即保存”
真正接近实时保存的行为,得靠社区插件 AutoSave(作者:wbond)。它监听内容变更,在空闲几秒后自动执行 save 命令,不是每敲一个字都存,而是防你忘按 Ctrl+S。
- 用 Package Control 安装插件后,在
Preferences → Package Settings → AutoSave → Settings中配置:{"auto_save_delay": 1.0, "auto_save_files": true, "auto_save_on_focus_lost": true} -
auto_save_delay单位是秒,设为0并不等于“即时”,Sublime 会强制最低 0.5 秒延迟,避免高频触发 -
auto_save_on_focus_lost很关键:切出窗口前强制保存一次,防止你改完直接关掉 Sublime 而没保存 - 插件对未命名文件(
untitled)默认不生效,首次保存前它不会帮你生成文件
别忽略 .gitignore 或临时文件干扰
AutoSave 插件会忠实保存所有已打开的、有路径的文件,包括你本不想提交的 .log、build/ 下的产物,甚至不小心打开的 /tmp/xxx。一旦配置了全局自动保存,这些文件就真被写回磁盘了。
- 可在插件设置中加白名单:
"auto_save_file_extensions": ["js", "py", "md"] - 或者用
auto_save_ignore_files排除路径模式,比如:"auto_save_ignore_files": [".*.log$", ".*build/.*"] - 注意正则语法是 Python 风格,
$表示行尾,漏写可能导致误排除 - 如果项目里用了符号链接,AutoSave 保存的是链接目标,不是链接本身——这点容易在部署脚本里踩坑
真正“实时”的边界很窄:Sublime 不提供 on-change hook,插件只能靠定时轮询或视图变更事件,所以总存在最多 1 秒左右的窗口。如果你正在编辑一个被其他进程监视的配置文件(比如 nginx.conf 被 systemd reload 监听),不要依赖 AutoSave 的毫秒级响应,手动保存 + 验证仍是唯一可靠方式。