User.sublime-keymap是唯一应修改的快捷键文件,需用JSON格式在右侧编辑区添加含"keys"和"command"字段的对象;命令名须通过Ctrl+Shift+P或sublime.log_commands(True)实测获取;高级绑定支持"args"传参和"context"条件判断;鼠标绑定需另建.sublime-mousemap文件;规则按顺序匹配,禁用默认键需显式设"command": "unbound"。

User.sublime-keymap 文件是唯一推荐修改的位置,所有自定义快捷键必须写在这里,改其他文件不仅无效,还可能被下次更新覆盖。
怎么打开并编辑用户快捷键文件
直接点菜单 Preferences → Key Bindings,会并排打开两个文件:左侧是只读的 Default (Windows).sublime-keymap(或对应系统名),右侧就是可编辑的 User.sublime-keymap。你只需要在右侧文件里加内容。
- 首次打开时右侧通常是空的,但必须保持合法 JSON 格式——哪怕只有一条规则,也要用方括号
[ ]包裹 - 每条规则是一个对象,至少含
"keys"和"command"两个字段 - 保存后立即生效,不用重启 Sublime Text
- 如果快捷键没反应,先检查右下角有没有红色报错提示——多半是逗号多写、引号没闭合或中英文标点混用
怎么找对命令名(比如“删除整行”“格式化代码”)
命令名写错,快捷键就完全不执行。最稳的方式不是猜,而是实测:
- 按
Ctrl+Shift+P打开命令面板,输入功能关键词(如delete line),看到的命令名就是真实command值(例如run_macro_file) - 或者打开控制台
Ctrl+`,输入sublime.log_commands(True),然后手动执行一次目标操作(比如菜单里点“删除行”),控制台会打出完整命令和参数 - 别依赖记忆或网上搜到的旧命令——插件升级后命令名可能变,比如
js_format可能已废弃,换成eslint_fix
带参数和条件的高级绑定怎么写
很多实用功能需要传参或限定触发场景,比如让 Tab 键只在非注释行补全、让 Ctrl+P 默认搜函数而不是文件:
-
"args"是字典,必须嵌套在命令对象里,例如:[ { "keys": ["ctrl+p"], "command": "show_overlay", "args": { "overlay": "goto", "text": "@" } } ] -
"context"控制生效条件,常见判断项有:"selection_empty"(无选区)、"preceding_text"(光标前文本)、"auto_complete_visible"(补全面板是否弹出) - 多个 context 条件是“且”关系,全部满足才触发;想实现“或”,得拆成多条规则
- 正则匹配要用
"not_regex_contains"或"regex_contains",比如屏蔽注释行:{"key": "preceding_text", "operator": "not_regex_contains", "operand": "^\\s*//|^\\s*#"}
鼠标快捷键也能自定义(常被忽略)
Sublime 支持鼠标按钮绑定,比如中键粘贴、滚轮调字体,但配置文件位置不同:
- 进 Preferences → Browse Packages → User,新建文件:
Default (Windows).sublime-mousemap(Windows)或对应系统名 - 内容也是 JSON 数组,但字段是
"button"(如"button2"是中键)、"modifiers"(如["ctrl"])、"command" - 示例:让 Ctrl+滚轮向上放大字体
[ { "button": "button4", "modifiers": ["ctrl"], "command": "increase_font_size" } ] - 注意:
button4/button5是滚轮上下,不是侧键;侧键通常是button8/button9,但部分鼠标驱动会拦截,不一定生效
Ctrl+S 保存),必须显式加一条 "command": "unbound",否则它仍会响应。










