Sublime Text 唯一防丢内容的原生机制是启用 save_on_focus_lost:在 User Settings 中添加 "save_on_focus_lost": true,失焦时对已修改可写文件执行一次系统级保存;所有 auto_save 类字段均为无效键名,必须删除以免破坏配置或干扰插件。

Sublime Text 没有“实时保存”,也没有叫 auto_save 的原生配置项;唯一真正写入磁盘、防断电/崩溃丢内容的机制,是启用 save_on_focus_lost。
怎么在 User Settings 里正确启用 save_on_focus_lost
它只在你点击终端、浏览器、桌面等外部程序时,对已修改且可写的文件执行一次系统级 write()——不是轮询,不占 CPU,也不卡 UI。
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置面板,确保编辑的是右侧「User Settings」 - 在已有 JSON 的花括号
{}内添加一行:"save_on_focus_lost": true - 注意:前面若有其他字段,末尾必须有英文逗号;引号必须是英文双引号;
true必须小写、不加引号 - 按
Ctrl + S保存该文件,立即生效,无需重启 - 验证方法:改几行字 → 点击桌面 → 切回 Sublime → 查看文件修改时间是否更新
为什么所有 auto_save 类字段都得删掉
这些键名(如 auto_save、auto_save_interval、auto_save_delay_in_seconds)在 Sublime 官方源码中根本不存在。JSON 解析器会静默忽略它们,既不报错也不触发任何行为。
- 加了无效字段可能破坏 JSON 语法(比如漏引号、多逗号),导致整个 User Settings 加载失败——连
save_on_focus_lost都不工作 - 某些版本的 AutoSave 插件会误读这些字段,以为“原生已启用”,从而禁用自己的核心逻辑,结果自动保存彻底失灵
- 网上混用的
auto_save_delay_ms、auto_save_delay_in_ms等写法,在 AutoSave v4.1+ 中只有auto_save_delay_milliseconds真正起效
想“停笔几秒就保存”?必须换方案:关掉 save_on_focus_lost,装 AutoSave 插件
save_on_focus_lost 是失焦触发,不是空闲触发。两者同时开启会导致同一文件被重复保存,编辑大日志或被 Webpack / nodemon 监听时容易卡死或冲突。
- 先在 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": 1500} -
auto_save_delay_milliseconds别设低于 1000;500ms 容易边打字边保存,UI 卡顿;处理几百 MB 的 SQL 日志时建议 ≥3000
最容易被忽略的一点:save_on_focus_lost 只在「整个窗口失焦」时触发——切 Tab、开新窗口、甚至拖 Sublime 到另一个显示器但没点外部应用,都不算;必须点到终端、浏览器、微信、桌面等外部进程才生效。另外,如果文件正被 Git LFS、rsync 或其他进程占用,也可能静默失败。

















