sublime text 唯一原生可靠的自动保存方式是启用 save_on_focus_lost:仅在窗口失焦时对已修改、可写、已命名的文件执行一次真实保存;需在 user settings 的 json 中严格添加 "save_on_focus_lost": true,语法错误将导致配置失效;禁用无效字段如 auto_save 等;如需停顿保存,须卸载该设置并安装 autosave 插件,配置 auto_save_on_idle 和 auto_save_delay_milliseconds;新建未命名文件不会被保存。

Sublime Text 原生唯一可靠、无副作用的自动保存方式,就是启用 save_on_focus_lost:它只在你切出整个 Sublime 窗口(比如点到终端、浏览器、桌面)时,对已修改且可写的文件执行一次真实保存——未改动、只读、新建未命名(untitled)文件都不会触发。
怎么正确添加 save_on_focus_lost 到用户设置
这个配置必须写在 User Settings 里,且语法要严格合规,否则整份设置可能加载失败:
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置面板 - 确保你在编辑右侧「User Settings」(左侧是只读默认项,改了也没用)
- 在已有 JSON 的花括号
{}内添加一行:"save_on_focus_lost": true - 注意:前面若有其他字段,末尾需有逗号;引号必须是英文双引号;值必须是小写
true,不能写成True或"true" - 按
Ctrl + S保存,立即生效,无需重启
为什么别碰 auto_save、auto_save_interval 这类字段
这些键名在 Sublime 官方源码和文档中根本不存在,加了等于白写,还容易埋雷:
-
"auto_save": true、"auto_save_delay_in_seconds": 1、"auto_save_interval": 60—— 全部无效,Sublime 解析器会静默忽略 - 如果同时装了 AutoSave 插件,它可能误读这些字段,以为“原生已启用”,从而禁用自己的核心逻辑,导致自动保存彻底失灵
- 不同教程混用
auto_save_delay_ms、auto_save_delay_milliseconds、auto_save_delay_in_ms,但截至 2026 年 5 月,AutoSave 插件(v4.1+)真正起效的只有auto_save_delay_milliseconds,其他全是过时或拼写错误 - JSON 里多一个错位逗号或漏个引号,整个 User Settings 就失效——连
save_on_focus_lost都不工作
想实现“打字停顿几秒就存”?必须关掉 save_on_focus_lost 再装插件
save_on_focus_lost 是失焦触发,不是空闲触发。如果你需要更激进的保存策略(比如编辑中途停顿 3 秒就落盘),就得切换方案:
- 先在 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
最常被忽略的一点:新建未命名文件(标题为 untitled)永远不会被 save_on_focus_lost 保存——这是设计,不是 bug。如果你依赖自动保存防丢,务必先用 Ctrl + S 给文件命个名,再开始写。否则失焦再多次,内容也还在内存里,没落盘。











