启用 save_on_focus_lost 即可实现安全自动保存:仅在切换出 Sublime 窗口时保存已修改文件,未改动、只读或新建文件均不保存;官方不支持 auto_save 等字段,插件 AutoSave 与之互斥。

直接用 save_on_focus_lost 就够了,别碰 auto_save
Sublime Text 原生唯一稳定、无副作用的自动保存方式,就是启用 save_on_focus_lost。它不是“实时保存”,但足够安全:只在你切出整个 Sublime 窗口(比如点到终端、浏览器、桌面)时,对当前有修改的文件执行一次保存——未改动的不写盘,只读文件不误存,崩溃断电前至少能保住最后一次失焦前的内容。
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(Mac)打开设置 - 确保编辑的是右侧「User Settings」(左侧是只读默认项)
- 在花括号
{}内添加一行:"save_on_focus_lost": true,注意逗号位置和引号闭合 - 保存该设置文件(
Ctrl + S),立刻生效,无需重启
网上流传的 "auto_save": true、"auto_save_interval": 60 等字段,Sublime 官方从未支持,属于过时/错误配置,加了也没用,还可能干扰插件行为。
AutoSave 插件适合需要空闲触发的场景
如果你真需要“敲字停顿 2 秒就保存”或“每 30 秒强制落盘”,那得靠 AutoSave 插件。但它和原生 save_on_focus_lost 不兼容——两者同时开启会导致同一文件被重复保存,不仅浪费 I/O,还可能在编辑大型日志或被外部进程读取时引发冲突。
- 先在用户设置里删掉或注释掉
"save_on_focus_lost": true - 通过
Ctrl+Shift+P→Install Package→ 搜索并安装AutoSave - 进入
Preferences → Package Settings → AutoSave → Settings,在右侧用户设置中写入:
{
"auto_save_on_idle": true,
"auto_save_delay_milliseconds": 3000,
"auto_save_only_if_already_saved": false
}
auto_save_delay_milliseconds 别设太小(如 500),否则边打字边保存,UI 可能卡顿;对几百 MB 的 SQL 或日志文件,建议 ≥3000。
为什么切换 tab 不触发保存?这是设计,不是 bug
你只是在 Sublime 内部切换 tab,没切出整个窗口,那不算“失焦”,不会触发 save_on_focus_lost。它只响应「窗口失去焦点」这一事件,跟文件是否已保存、是否只读、是否新建未命名,都无关。
- 想测试是否生效?改几行字 → 点击桌面或终端 → 再切回来 → 文件已保存
- 如果切到另一个 Sublime 窗口(多窗口模式),也属于失焦,会触发
- 但切到同个窗口的另一个 tab?不会保存 —— 这是预期行为,不是配置错了
插件配置里 auto_save_only_if_already_saved 很关键
这个布尔值控制新文件(比如刚按 Ctrl+N 创建、还没命名、没路径)是否参与自动保存。默认为 true,意味着新文件不会被插件保存,避免误生成无名临时文件。
- 设为
false才能让新文件也自动保存(需配合auto_save_on_idle) - 但要注意:未命名文件保存时会弹出“另存为”对话框,打断流程 —— 所以多数人其实不需要开它
- 如果你常写草稿再重命名,建议保持
true,手动第一次保存后再交由自动机制接管
真正容易被忽略的,是「失焦保存」和「空闲保存」根本不能共存。选哪个,取决于你日常操作习惯:频繁跨应用切换的人,save_on_focus_lost 更轻量可靠;专注单任务长文本编辑的人,AutoSave 的空闲延迟才真正有用。










