sublime text macos 快捷键生效需三步:先排除系统(spotlight/输入法)抢占,再确保 user.sublime-keymap 中修饰键名用 super、语法正确,最后验证无 json 错误;否则修改无效。

Sublime Text 在 macOS 上改快捷键,不是“加一条规则就完事”,而是得先确认系统没把键截走、再写对位置、还得用对修饰键名。否则改了也白改。
Cmd+Shift+P 不弹命令面板?先关 Spotlight 冲突
macOS 默认用 Cmd+Shift+P 唤出 Spotlight,Sublime 根本收不到这个组合键。这不是 Sublime 的 bug,是系统级抢占。
- 别去禁用 Spotlight——直接换一个不冲突的组合,比如
Ctrl+Shift+P或Cmd+Alt+P - 打开
Sublime Text → Preferences → Key Bindings,编辑右侧的User.sublime-keymap - 加这条(注意 JSON 语法):
[{"keys": ["ctrl+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"}}] - 保存后立即生效;如果插件(如 Package Control)依赖原
Cmd+Shift+P,别删它,只覆盖或新增即可
输入法劫持 Cmd+S、Cmd+Space?别在 Sublime 里硬扛
搜狗、百度等中文输入法常把 Cmd+S 绑定为截图、Cmd+Space 绑定为切换输入源。此时 Sublime 永远收不到这些键——你在 User.sublime-keymap 里写再多 {"keys": ["super+s"], "command": "save"} 都没用。
- 验证方式:切到英文输入法,再按
Cmd+S,能保存就确认是输入法问题 - 永久解法:进「系统设置 → 键盘 → 快捷键 → 输入源」,取消勾选
Cmd+Space和Cmd+S相关项 - 若必须保留输入法快捷键,可在 Sublime 用户键位中绑定冷门组合,例如:
Cmd+Alt+S用于保存
自定义快捷键必须写在 User.sublime-keymap,且修饰键名要写 super
macOS 下的 Cmd 键,在 Sublime 的键位配置里必须写作 super,不是 cmd 或 command。写错就完全不触发。
- 菜单打开
Preferences → Key Bindings后,左边是只读的默认配置(Default (OSX).sublime-keymap),所有修改必须写在右边的User.sublime-keymap - 禁用某个默认键?加空命令:
{"keys": ["super+k"], "command": "null"} - 想把
Cmd+K改成显示侧边栏?写:{"keys": ["super+k"], "command": "toggle_side_bar"} - 改完保存,无需重启;若无效,优先检查 JSON 是否有漏逗号、引号不闭合、括号错位
Cmd+滚轮缩放不工作?必须新建 Default (OSX).sublime-mousemap
ST4 和 Sublime Text 3143+ 确实支持 Cmd+滚轮 缩放字体,但 macOS 默认禁用该行为,仅改 Settings 不起作用。
- 必须在
Packages/User/目录下新建文件,**严格命名为**:Default (OSX).sublime-mousemap(注意空格、括号、大小写、后缀一个都不能错) - 文件内容为 JSON 数组,例如:
[{"button": "scroll", "modifiers": ["super"], "command": "zoom_in"}, {"button": "scroll", "modifiers": ["super", "shift"], "command": "zoom_out"}] - 保存后立即生效;如果仍无效,检查是否被系统级辅助功能(如 Zoom)或第三方工具(如 BetterTouchTool)劫持了滚轮事件
真正卡住人的从来不是“怎么写”,而是不知道键在哪儿就被截走了。每次改键前,先切英文输入法试一次,再查系统快捷键设置里有没有重名项——这两步省掉,后面全白忙。











