开启save_on_focus_lost是防断电丢代码最有效、最轻量的方式——切出窗口瞬间真实写入磁盘,不依赖插件、不增加I/O压力、不误存只读或新建文件。

直接结论:开启 save_on_focus_lost 是防断电丢代码最有效、最轻量的方式——切出窗口瞬间真实写入磁盘,不依赖插件、不增加 I/O 压力、不误存只读或新建文件。
为什么 save_on_focus_lost 能真正防断电丢失
它不是“后台缓存”,而是调用系统 write() 真实落盘。只要你在编辑中途切到终端、浏览器、微信或桌面,当前所有已修改的文件(且仅这些文件)立刻保存。断电前最后一次失焦,就是你最后能保住的内容。
- 只对已命名、可写、有改动的文件生效;
untitled文件和只读文件完全跳过 - 无需重启、无需插件、不改任何其他设置,加一行就生效
- 如果同时开着
hot_exit(默认开启),它只负责恢复未落盘的编辑状态;但断电时只有save_on_focus_lost写过的才真正安全
别碰 auto_save 类字段:它们根本不存在
你在网上搜到的 "auto_save": true、"auto_save_interval": 60、"auto_save_delay_in_seconds": 1 —— 这些字段 Sublime 官方从未实现。JSON 解析器会静默忽略它们,但 AutoSave 插件可能误读为“原生已启用”,进而禁用自己的核心逻辑。
- Sublime 的设置文件里写这些,等于没写;还可能让插件行为异常
- 不同教程混用
auto_save_delay_ms、auto_save_delay_milliseconds、auto_save_delay_in_ms,其实截至 2026 年 5 月,AutoSave 插件 v4.1+ 唯一认的是auto_save_delay_milliseconds - 想“停笔就存”?必须关掉
save_on_focus_lost,再装插件,不能共存
真要空闲自动保存,AutoSave 插件怎么配才不翻车
如果你写 Markdown 笔记、调试 JSON 配置,或者需要每几秒强制落盘,就得用 AutoSave 插件。但它有自己的配置入口,不是往用户设置里随便贴代码。
- 先删掉或注释掉用户设置里的
"save_on_focus_lost": true - 按
Ctrl+Shift+P→ 输入Package Control: Install Package→ 搜AutoSave(作者 randy3k)安装 - 进
Preferences → Package Settings → AutoSave → Settings – User,写入:
{
"auto_save_on_idle": true,
"auto_save_delay_milliseconds": 1500,
"auto_save_only_if_already_saved": true
}
-
auto_save_delay_milliseconds别设低于 1000;500ms 容易边打字边保存,卡 UI - 处理大文件(如几百 MB 的 SQL 日志)时,建议 ≥3000,避免频繁 I/O 拖慢响应
-
excluded_patterns可加["*.log", "*.out"],防止插件去写被外部进程占用的日志文件
最容易被忽略的细节
很多人配完发现“没反应”,不是插件坏了,而是掉进了隐性逻辑坑里:新建的 untitled 文件永远不会被 save_on_focus_lost 或插件自动保存——必须先手动 Ctrl+S 命名一次,后续修改才进入自动保存流程。这个限制是设计使然,不是 bug,也改不了。

















