ctrl+shift+s(macos为cmd+shift+s)默认绑定到save_as而非save_all;save_all无默认快捷键,需手动在用户键位文件中添加对应json绑定,且跨平台配置不可混用。

Ctrl+Shift+S 默认不是“保存全部”,而是“另存为”
这是最常被误以为配置出错的地方。Sublime Text 所有平台(Windows/Linux/macOS)默认都把 Ctrl+Shift+S(macOS 是 Cmd+Shift+S)绑定到 save_as 命令,不是 save_all。你按了弹出另存为窗口,不是快捷键失效,是它本来就不该保存全部。
save_all 是一个独立命令,只在菜单 File → Save All 中可用,但默认没有任何快捷键绑定。
- 菜单项
File → Save All总是有效,它只保存当前窗口中已修改、可写、非 untitled 的文件 - 如果你开了 15 个标签页,其中 3 个没改过,
save_all不会碰它们,也不报错 - 多个项目混在一个窗口里?照样统一保存——只要它们在当前 Sublime 窗口中打开
如何安全绑定 Ctrl+Shift+S 到 save_all
必须手动编辑用户键位文件(右侧),不能动左侧默认设置。JSON 格式要严格,大小写敏感,引号用英文双引号。
打开 Preferences → Key Bindings,在右侧用户文件中插入这一行:
{ "keys": ["ctrl+shift+s"], "command": "save_all" }
- Windows/Linux 用户用
ctrl+shift+s;macOS 用户应改为cmd+shift+s - 如果输入法或其它软件占用了该组合(比如某些中文输入法劫持
Ctrl+Shift+S),可换为ctrl+alt+s避开冲突 - 保存后立即生效,无需重启 Sublime Text
save_on_focus_lost 能替代 save_all 吗
不能完全替代,但能补位防丢。开启后,只有当你点击外部窗口(比如终端、浏览器、桌面)导致 Sublime 失去焦点时,才会触发一次保存动作。
- 切换 Sublime 内部 tab、切换到另一个 Sublime 窗口,都不会触发
- 它只保存当前窗口中已修改 + 可写 + 非 untitled 的文件,和
save_all行为一致,但时机被动 - 提交代码前、关机前、或需要确认所有改动已落盘时,仍得主动按你绑定的
save_all快捷键
两者可以共存:"save_on_focus_lost": true 放在用户设置里,save_all 快捷键单独绑定——一个兜底,一个可控。
容易被忽略的细节:跨平台键位文件别混用
如果你在 Windows 和 macOS 之间同步 Packages/User/ 目录(比如用 Git 或云盘),注意键位文件里不能同时写 ctrl+shift+s 和 cmd+shift+s。Sublime 不支持条件判断,同一份 JSON 在不同系统上会有一半失效。
更稳妥的做法是:
- Windows 用户只配
ctrl+shift+s - macOS 用户只配
cmd+shift+s - 避免在共享配置中混写,否则某天你在 Mac 上按
Ctrl+Shift+S,发现它既不另存为也不保存全部——因为键名不匹配,命令直接被忽略











