唯一真正防断电丢代码的方案是启用 save_on_focus_lost:在 user settings 中添加 "save_on_focus_lost": true,保存后切出窗口即真实落盘;所有 auto_save 类字段无效且可能干扰插件,需彻底删除。

唯一真正防断电丢代码的方案,是启用 save_on_focus_lost ——它会在你切出 Sublime 窗口时立刻把修改写入磁盘,不是缓存,不是延迟,是真实 write()。
怎么在 User Settings 里正确开启 save_on_focus_lost
这个配置是 Sublime 原生支持、无需插件、不依赖任何外部逻辑的落盘机制。
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置面板 - 确保你在编辑右侧「User Settings」(左侧是只读默认项)
- 在花括号
{}内添加一行:"save_on_focus_lost": true,注意英文双引号、逗号位置和 JSON 语法闭合 - 按
Ctrl + S保存该文件,立即生效,无需重启 - 验证方法:改几行字 → 点击桌面或终端 → 切回 Sublime → 查看文件修改时间是否更新
它不会保存未改动的文件、只读文件或新建的 untitled 文件——这是设计行为,不是失效。
为什么删掉所有 auto_save 类字段
网上大量教程写的 "auto_save": true、"auto_save_interval": 60、"auto_save_delay_in_seconds": 1 等字段,在 Sublime 官方源码中根本不存在。它们不会触发任何保存逻辑,反而会埋雷:
一款AI音频处理工具,主要用于通过向 `toingg/make_campaign` API 发送 POST 请求,提交用户提供的 JSON 数据,创建并启动 Toingg 语音呼叫活动,适用于 Codex 将活动简报……,适合需要提升相关任务效率的用户。
- Sublime 解析器会静默忽略这些键名,既不报错也不生效
- 某些版本的 AutoSave 插件会误判这些字段为“原生已启用”,从而禁用自身核心逻辑,导致自动保存彻底失灵
- 不同拼写混用(如
auto_save_delay_ms/auto_save_delay_milliseconds)在 v4.1+ 中已部分失效,升级后突然不工作 - 一个语法错误(比如少逗号、引号没闭合)会让整个用户设置加载失败,连
save_on_focus_lost都跟着失效
想“停笔几秒就存”?必须换 AutoSave 插件,且配置位置不能错
save_on_focus_lost 不支持空闲触发。如果你需要输入停顿后自动保存(比如写 Markdown 或调试 JSON),就得用 AutoSave 插件,但它和原生机制互斥:
- 先在 User Settings 中删掉或注释掉
"save_on_focus_lost": true - 按
Ctrl + Shift + P→ 输入Package Control: Install Package→ 搜索安装AutoSave(作者 randy3k,v4.1+) - 配置入口是
Preferences → Package Settings → AutoSave → Settings – User,不是通用 User Settings - 最小可用配置:
{"auto_save_on_idle": true, "auto_save_delay_milliseconds": 3000} -
auto_save_delay_milliseconds别设太小(如500),否则边打字边保存,UI 可能卡顿;对几百 MB 的 SQL 或日志文件,建议 ≥3000
容易被忽略的细节:失焦 ≠ 切 tab,大文件需额外防护
save_on_focus_lost 只在「整个 Sublime 窗口失焦」时触发,比如点到终端、浏览器、桌面,甚至另一个 Sublime 窗口;但仅在同一个窗口内切换 tab、新建 tab,不会触发。
如果你编辑的是被外部进程轮询的日志、SQL 导出文件或生成的 JSON,同时开了 save_on_focus_lost 和 AutoSave,可能引发 I/O 冲突或 UI 卡死——这种问题不会报错,只会表现为光标冻结、保存延迟、文件内容错乱。










