原生失焦自动保存唯一有效配置是"save_on_focus_lost": true,需在user settings中严格添加并保存;其他auto_save类字段均无效且可能破坏配置或干扰插件。

原生失焦自动保存怎么配才真正生效
Sublime Text 唯一原生、稳定、无需插件的自动保存方式就是 save_on_focus_lost,它只在你切出整个 Sublime 窗口(比如点到终端、浏览器、桌面)时,对已修改、可写、已命名的文件执行一次真实磁盘写入。其他所有带 auto_save 字样的字段,官方源码里根本不存在,加了不仅不生效,还可能让 AutoSave 插件误判失效。
正确操作步骤:
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置面板,确保编辑的是右侧「User Settings」 - 在已有 JSON 的花括号
{}内添加一行:"save_on_focus_lost": true - 注意:前面若有其他字段,末尾必须有英文逗号;引号必须是英文双引号;值必须是小写
true,不能写成True或"true" - 按
Ctrl + S保存,立即生效,无需重启
验证方法:改几行字 → 点击桌面或终端 → 切回 Sublime → 查看文件修改时间是否更新。仅切换 tab、新建 tab、甚至开另一个 Sublime 窗口(多窗口模式下从 A 切到 B 算失焦),但 A 内部 tab 切换不算触发。
为什么 auto_save、auto_save_interval 这些字段一定无效
这些键名在 Sublime 官方代码和文档中从未定义。你在 User Settings 里写 "auto_save": true 或 "auto_save_interval": 60,Sublime 解析器会静默忽略——既不报错,也不写盘,更不会触发任何保存逻辑。
实际危害比“没用”更严重:
- JSON 语法错误(比如少个逗号、引号没闭合)会导致整个 User Settings 加载失败,连
save_on_focus_lost都跟着失效 - AutoSave 插件(v4.1+)可能误读这些字段,以为“原生已启用”,从而禁用自己的核心逻辑,导致自动保存彻底失灵
- 网上混用的
auto_save_delay_in_ms、auto_save_delay_ms、auto_save_delay_in_seconds全是过时或拼写错误,截至 2026 年 7 月,插件唯一认的延迟字段是auto_save_delay_milliseconds
想实现“打字停顿几秒就存”,必须换方案
save_on_focus_lost 是失焦触发,不是空闲触发。如果你需要编辑中途停顿 3 秒就落盘,就得关掉它,再装 AutoSave 插件——二者互斥,同时开启会导致重复写盘、UI 卡顿,甚至在编辑被外部进程读取的大日志时引发锁冲突。
操作流程:
- 先在 User Settings 中删掉或注释掉
"save_on_focus_lost": true - 按
Ctrl + Shift + P(macOS 为Cmd + 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。
容易被忽略的细节:未命名、只读、未改动文件都不会保存
这是设计行为,不是 bug。save_on_focus_lost 和 AutoSave 插件都跳过三类文件:
- 新建未命名文件(显示为
untitled),因为没有路径,无法写盘 - 只读文件(比如系统配置、git submodule 中的文件),避免意外覆盖
- 已修改但尚未改动的文件(即内容与磁盘一致),不浪费 I/O
如果你发现某个文件没被自动保存,先检查它是否属于这三种情况之一——而不是怀疑配置写错了。真正的“防丢”依赖的是明确触发条件,不是无差别覆盖。











