Sublime Text 必须手动编辑 Key Bindings 文件并用 run_macro_file 命令配绝对路径,因 Tools → Macros 菜单无图形化绑定入口;宏文件须存于 Packages/User/ 目录、以 .sublime-macro 结尾、命名严格规范,且录制后须立即保存;JSON 配置中 command 固定为 "run_macro_file",file 值须为 "Packages/User/xxx.sublime-macro" 格式,keys 不可冲突;失效常见原因包括路径错误、未重启/重载配置、文件位置或命名不符、录制含鼠标操作及光标状态依赖。

必须手动编辑 Key Bindings 文件,用 run_macro_file 命令配绝对路径,否则快捷键无效。
为什么 Tools → Macros 菜单里找不到“绑定快捷键”选项
Sublime Text 的宏系统压根没提供图形化绑定入口。Tools → Macros 下只有 Run Last Recorded Macro 和 Save Macro,不支持从菜单选宏再设快捷键——这不是遗漏,是设计如此。所有快捷键绑定都得走 JSON 配置。
保存宏文件时路径和命名必须严格符合规范
- 必须保存在
Packages/User/目录下(不是~/Desktop或任意子文件夹) - 文件名必须以
.sublime-macro结尾,比如wrap-in-div.sublime-macro - 路径中不能有空格、中文或特殊符号;大小写敏感,
Wrap-in-div.sublime-macro和wrap-in-div.sublime-macro是两个不同文件 - 保存操作必须在录制结束后立刻执行:一旦你移动光标、切换 Tab 或输入字符,
Save Macro菜单项就会变灰失效
Key Bindings 中的 JSON 必须写对三处关键内容
打开 Preferences → Key Bindings,在右侧用户配置区添加条目,注意这三点:
-
"command"固定为"run_macro_file",不能写成"play_macro"或其他变体 -
"file"值必须是完整路径,以"Packages/User/"开头,用正斜杠/,结尾带.sublime-macro,例如:"Packages/User/wrap-in-div.sublime-macro" -
"keys"数组里的按键组合不能与其他命令冲突;若用["="],需确认没被其他插件或默认行为占用
正确示例:
[{"keys": ["ctrl+alt+e"], "command": "run_macro_file", "args": {"file": "Packages/User/wrap-in-div.sublime-macro"}}]
常见失效原因:路径错、时机错、权限错
快捷键按了没反应?先检查:
- Sublime 是否重启过?修改 Key Bindings 后需重启或重载配置(
Ctrl+Shift+P→Reload Settings) - 宏文件是否真存在于
Packages/User/?可在Preferences → Browse Packages…进入该目录直接查看 - 是否误把路径写成相对路径或系统绝对路径(如
/home/user/xxx.sublime-macro)?Sublime 不认这种写法 - 是否在录制时混入了鼠标操作或命令面板调用?这类动作不会被记录,回放时会卡在第一步
最易被忽略的一点:宏本身依赖当前光标位置和选区状态。如果录制时是单行选中,回放时却是多行光标,行为大概率异常——它不是智能脚本,只是按键录像。


















