sublime text 原生仅支持 save_on_focus_lost 失焦自动保存,需在 user settings 中启用;禁用它并安装 autosave 插件后,才可配置 idle 自动保存,二者不可共存。

Sublime Text 没有“实时自动保存”功能,原生只支持 save_on_focus_lost 这一种稳定、无副作用的失焦保存机制;想实现“打字停顿几秒就存”,必须禁用它并安装 AutoSave 插件——两者不能共存,否则会重复写盘、卡 UI,甚至引发大文件锁冲突。
怎么正确启用原生 save_on_focus_lost
这是唯一无需插件、不会出错的自动保存方式:只在你切出整个 Sublime 窗口(比如点到终端、浏览器、桌面)时,对已修改且可写的文件执行一次真实磁盘写入。
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置面板,确保编辑的是右侧「User Settings」 - 在花括号
{}内添加一行:"save_on_focus_lost": true,注意逗号位置和英文双引号 - 按
Ctrl + S保存该设置文件,立即生效,无需重启 - 验证方法:改几行字 → 点击桌面或终端 → 切回 Sublime → 查看文件修改时间是否更新
- 常见不触发场景:仅切换 tab、新建 tab、开另一个 Sublime 窗口(多窗口模式下从 A 切到 B 算失焦,但 A 内部 tab 切换不算)
为什么 "auto_save": true 或 "auto_save_interval": 60 一定无效
这些字段在 Sublime 官方源码和文档中根本不存在。加了只会带来三个实际问题:
- Sublime 会静默忽略,既不报错也不生效
- 若少写逗号、引号不闭合,整个用户设置 JSON 加载失败,连
save_on_focus_lost都失效 - 某些插件(如 AutoSave)会误读这些字段,以为“原生 auto_save 已启用”,从而禁用自身关键逻辑,导致自动保存彻底失灵
网上混用的 auto_save_delay_in_ms、auto_save_delay_ms、auto_save_delay_in_seconds 等写法,也都不是 Sublime 原生支持的键名。
装 AutoSave 插件后,配置必须写对位置和字段名
AutoSave 插件的配置**不能**写在 User Settings 里,也不能用任意字段名——截至 2026 年 4 月最新版(v4.1+),真正起效的只有两个字段:auto_save_on_idle 和 auto_save_delay_milliseconds。
- 先在 User Settings 中删掉或注释掉
"save_on_focus_lost": true(必须关掉原生机制) - 按
Ctrl + Shift + P→ 输入Package Control: Install Package→ 搜索安装AutoSave(作者 randy3k) - 进入
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;AutoSave 插件默认也不会保存未命名文件,除非显式配置 "auto_save_only_if_already_saved": false。另外,只读文件、路径含中文或空格、外部进程正在轮询读取的文件(如实时日志),都可能跳过保存——这些不是配置错了,而是机制本身的安全限制。











