Sublime Text仅原生支持save_on_focus_lost自动保存,需手动在用户设置中添加"save_on_focus_lost": true;它仅在窗口失焦时保存已命名且可写的修改文件,untitled、只读路径或配置错误均导致失效;真需实时保存应卸载该设置并安装AutoSave插件。

Sublime Text 原生只支持 save_on_focus_lost 这一种自动保存方式,它不是“实时保存”,而是在你切出整个 Sublime 窗口时,对已修改但未保存的文件执行一次写入——没改过的不存,只读或未命名的文件直接跳过。
怎么正确启用 save_on_focus_lost
这个设置必须手动加进用户配置,不能靠菜单勾选,也不能写在左侧默认设置里:
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置 - 确保编辑的是右侧「User Settings」(左侧是只读的默认项)
- 在花括号
{}内添加一行:"save_on_focus_lost": true,注意逗号位置和英文引号 - 按
Ctrl + S保存该文件,立即生效,无需重启
验证方法:改几行文字 → 点击桌面或切换到终端/浏览器 → 再切回 Sublime → 查看文件修改时间是否更新,或观察标签页上的 ● 圆点是否消失。
save_on_focus_lost 为什么没反应?常见失效原因
它不是坏了,而是被几个硬性条件拦住了:
-
untitled文件(新建未保存、没路径、没后缀):Sublime 不知道存哪,直接跳过,不报错也不弹窗 - 文件所在目录只读(如
/etc/hosts、Docker volume 挂载点、WSL 权限受限路径):系统拒绝写入,Sublime 静默失败,有时会弹权限错误提示 - 你以为“失焦”了,其实没有:在 Sublime 内部切换 tab、点击侧边栏、呼出命令面板(
Ctrl + Shift + P),都不算窗口失焦,不会触发 - 配置写错位置或格式:比如写在左侧 Default Settings(只读)、少引号、用中文冒号、多逗号,JSON 解析失败,整行被忽略
别碰 auto_save 类字段:它们根本不存在
网上教程里常见的 "auto_save": true、"auto_save_interval": 60、"auto_save_delay_in_ms": 1000 等字段,在 Sublime 官方代码中从未实现。加了不会报错,但也不会触发任何保存逻辑:
- Sublime 的 JSON 解析器会静默忽略未知字段,但某些插件(如 AutoSave)会误读这些字段,导致行为混乱
- 拼写五花八门(
auto_save_delay_ms/auto_save_delay_milliseconds/auto_save_delay_in_seconds),升级后可能突然失效 -
save_on_modified已彻底移除:自 build 4100 起完全无效,既不执行也不报错,纯属历史遗留误导
真要空闲就存?关掉原生设置,再装 AutoSave 插件
如果你需要“打字停顿 2 秒就保存”或“每 30 秒强制落盘”,save_on_focus_lost 不满足,必须换方案:
- 先在 User Settings 中删掉或注释掉
"save_on_focus_lost": true—— 两者共存会导致重复保存,大文件易卡顿或锁冲突 - 按
Ctrl + Shift + P→ 输入Package Control: Install Package→ 搜索安装作者为wbond或randy3k的AutoSave(别装同名仿品) - 安装后,进
Preferences → Package Settings → AutoSave → Settings – User,填入标准配置,例如:{ "auto_save_on_idle": true, "auto_save_delay_milliseconds": 3000 } -
auto_save_delay_milliseconds别设太小(
真正影响体验的不是设置本身,而是混淆原生和插件机制——比如在插件配置里又开 auto_save_on_focus_lost,结果切出窗口瞬间保存两次,小文件还好,几百 MB 的日志可能直接卡死视图。











