sublime默认不绑定ctrl+shift+s为保存全部,需手动在用户键绑定中添加{"keys":["ctrl+shift+s"],"command":"save_all"};save_all仅保存已打开且已修改的文件,不处理未打开或未修改的文件。

Sublime 默认没有 Ctrl+Shift+S 保存全部
按 Ctrl+Shift+S(Windows/Linux)或 Cmd+Shift+S(macOS)默认触发的是 save_as,不是保存全部——这是最常被误以为“快捷键坏了”的原因。Sublime 原生不绑定任何一键保存全部的快捷键,save_all 命令存在,但得你自己配。
手动绑定 save_all 快捷键才真正生效
必须进 Preferences → Key Bindings,在右侧用户配置里加一行:
[ { "keys": ["ctrl+shift+s"], "command": "save_all" } ]
注意几点:
- 别直接改左侧默认配置,只动右侧用户文件
- JSON 格式要严格:逗号不能多也不能少,括号必须闭合
- 如果同时存在冲突键位(比如某插件也占了
ctrl+shift+s),优先级以用户文件为准,但需重启 Sublime 生效 - macOS 用户用
cmd+shift+s,别写成ctrl
Save All 只保存“已修改且已打开”的文件
save_all 不会保存未修改的文件,也不会保存没在标签页里打开的文件(哪怕它们属于当前项目)。它只遍历所有打开的 tab,对其中 is_dirty() 为 true 的文件执行写入。
常见误解场景:
- 你打开了 10 个文件,其中 3 个改过但没保存 →
save_all只存这 3 个 - 你在侧边栏右键“Reveal in Side Bar”看到一堆文件,但没点开 → 它们不在内存 tab 中,
save_all看不见 - 文件被外部程序修改过,Sublime 检测到冲突弹出提示 → 此时
save_all会跳过该文件,不覆盖也不报错
自动保存不是“保存全部”,别指望它替代手动操作
设置 "save_on_focus_lost": true 后,切到终端、浏览器或桌面时,Sublime 会保存所有已修改的打开文件——这看起来像“自动 save_all”,但它有硬限制:
- 只在窗口失去焦点时触发,不会在关闭前强制校验(比如你直接关机,它根本没机会运行)
- 如果某个文件正被其他进程锁定(如日志文件被 tail 占用),
save_on_focus_lost会静默失败,不提示也不重试 - 它不等同于
save_all命令:前者是事件驱动的后台行为,后者是明确的同步写入动作
下班前最后一秒按一下 Ctrl+Shift+S,比依赖自动保存更可靠——尤其当你不确定有没有人动过你的临时文件锁。











