启用save_on_focus_lost: true是Sublime Text唯一原生、真实落盘的失焦自动保存方式;需在User Settings中严格添加该JSON字段,禁用所有auto_save类无效配置,新建未命名或只读JSON文件不触发。

Sublime Text 没有“JSON 自动保存”这个独立功能,所谓“JSON 自动保存”本质是通用自动保存机制在编辑 JSON 文件时的表现——它不认文件类型,只看窗口焦点和文件状态。直接设 save_on_focus_lost 就行,别碰任何带 auto_save 的字段,那些全无效。
怎么在 User Settings 里正确启用原生失焦保存
这是唯一无需插件、不刷磁盘、真实落盘的方案,改完立即生效:
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置面板,确保编辑的是右侧「User Settings」 - 在已有 JSON 的
{}内添加一行:"save_on_focus_lost": true - 注意:前面若有其他配置项,末尾必须加英文逗号;引号必须是英文双引号;值必须是小写
true,不能写成True或"true" - 按
Ctrl + S保存,不用重启,马上可用
验证方法:打开一个 JSON 文件 → 改几行 → 点击桌面或终端 → 切回 Sublime → 查看文件修改时间是否更新。标签上的 ● 圆点消失,说明已写入磁盘。
为什么 auto_save、auto_save_delay_in_seconds 这些字段必须删掉
它们在 Sublime 官方源码中根本不存在,加了不仅不生效,还会埋雷:
-
"auto_save": true、"auto_save_interval": 60、"auto_save_delay_in_ms": 1000全被 Sublime 解析器静默忽略,既不报错也不执行 - JSON 里多一个错位逗号或漏个引号,整个 User Settings 就加载失败——连
save_on_focus_lost都跟着失效 - AutoSave 插件(v4.1+)会误读这些字段,以为“原生已启用”,从而禁用自己的核心逻辑,导致自动保存彻底失灵
- 网上混用的
auto_save_delay_ms、auto_save_delay_milliseconds、auto_save_delay_in_seconds中,只有auto_save_delay_milliseconds在插件里有效,但前提是关掉save_on_focus_lost并走插件专属配置路径
想边写 JSON 边存?必须用 AutoSave 插件且配对位置
save_on_focus_lost 是失焦触发,不是空闲触发。如果你编辑 JSON 时希望“停笔 2 秒就落盘”,就得换方案:
- 先在 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;设成 0 或 100 不生效,设太小(如 300)易与 LSP 插件语法检查冲突,造成高频写盘卡顿。
JSON 文件编辑时容易被忽略的关键细节
很多人以为“JSON 自动保存”要单独配置,其实没有这回事。但以下三点实际中常被跳过:
-
save_on_focus_lost对新建未命名(untitled)的 JSON 片段不生效——你得先Ctrl + S保存为.json文件才有用 - 如果 JSON 文件是只读(比如放在
/usr/local/bin下),保存会失败,但 Sublime 不弹窗提示,只在状态栏闪一下错误信息 - 同时开启
save_on_focus_lost和 AutoSave 的auto_save_on_focus_lost,会导致同一文件被重复保存,大 JSON(>1MB)可能卡 UI 或产生临时锁


















