启用save_on_focus_lost是Sublime Text唯一原生、真实落盘、防断电丢代码的失焦自动保存方式;其他所有auto_save类字段均无效,且可能破坏配置或干扰插件;需在User Settings中严格添加"save_on_focus_lost": true并保存生效。

直接结论:启用 save_on_focus_lost 是 Sublime Text 唯一原生、真实落盘、防断电丢代码的失焦自动保存方式;其他所有 auto_save 类字段均无效,且可能破坏配置或干扰插件。
怎么正确添加 save_on_focus_lost 到 User Settings
这个设置必须手动写进用户配置,不能靠菜单勾选,也不能写在左侧只读的 Default Settings 里:
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置面板,确保你在编辑右侧「User Settings」 - 在已有 JSON 的花括号
{}内添加一行:"save_on_focus_lost": true - 注意:前面若有其他字段,末尾必须有英文逗号;引号必须是英文双引号;
true必须小写、不能加引号 - 按
Ctrl + S保存该文件,立即生效,无需重启 Sublime
为什么 save_on_focus_lost 没反应?常见失效场景
它不是坏了,而是被几个硬性条件卡住了:
- 文件是新建未命名的(
untitled)——Sublime 不知道存哪,直接跳过 - 文件路径只读(如
/etc/hosts、Docker volume 挂载点、WSL 权限受限目录)——系统拒绝写入,Sublime 静默失败 - 你只是在 Sublime 内部切换 tab、点击侧边栏、呼出命令面板(
Ctrl + Shift + P)——这些都不算窗口失焦,不会触发 - 配置写错位置或格式:比如写在左侧 Default Settings、少引号、用中文冒号、多逗号——JSON 解析失败,整份用户设置加载失败,
save_on_focus_lost也跟着失效
为什么别碰 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_in_ms、auto_save_delay_milliseconds等写法,在 AutoSave v4.1+ 中只有后者真正起效;其他全是过时或拼写错误 - 一个语法错误(比如漏引号、错位逗号)会让整个 User Settings 加载失败——连
save_on_focus_lost都不工作
想实现“停笔几秒就保存”?必须换方案
save_on_focus_lost 是失焦触发,不是空闲触发。真要空闲保存,得关掉它再装插件:
- 先在 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别设低于 1000;500ms 容易边打字边保存,UI 卡顿;处理几百 MB 的日志或 SQL 文件时,建议 ≥3000
最常被忽略的一点:多窗口模式下,从 Sublime 窗口 A 切到窗口 B 算失焦,会触发保存;但同一个窗口内 tab 切换不算——这不是 bug,是底层焦点事件机制决定的,改不了。


















