Sublime Text宏仅机械重放按键流,依赖光标位置、上下文和文件路径三者完全一致;录制用Ctrl+Q/Cmd+Q,保存必须为Packages/User/xxx.sublime-macro,回放前需手动校验环境。

Sublime Text 的宏不是“录制完就能用”的自动化工具,它只机械重放按键流,光标位置、上下文、文件路径三者错一个,回放就失效。
Ctrl+Q 录制,别点菜单
按 Ctrl+Q(Windows/Linux)或 Cmd+Q(macOS)启动录制,状态栏右下角会闪一下 Recording macro。菜单里的 Tools → Record Macro 虽然能用,但响应慢、易误点成子项,不推荐。
- 录制中所有键盘操作都会被记下,包括
Ctrl+Z、Esc、多余Enter—— 这些都会变成宏的一部分,回放时照样执行 - 鼠标拖选、右键菜单、点击侧边栏、弹出查找框(
Ctrl+F)或命令面板(Ctrl+Shift+P)会导致录制静默中断,后续动作全丢 - 想录多光标操作?可以:
Ctrl+Shift+L拆行、Ctrl+D逐词选中,这些是键盘命令,会被记录;纯鼠标点选不行
回放没反应?先查这三点
点了 Tools → Playback Macro 却只跳光标、不输字符,大概率栽在这三个前提上:
- 光标不在预期位置:宏不自动找行、不批量处理,你录的是“删当前行”,就得把光标放在目标行首再回放
- 命令上下文丢失:比如录制时用
Tab触发 Emmet 补全,但回放时文件类型不是.html,或 Emmet 插件被禁用,动作就卡住 - 宏还在内存里,没保存:刚录完不保存就关 Sublime,宏彻底消失——它不像 VSCode 那样自动持久化
验证是否录对,最快方法是:停止录制后立刻按 Ctrl+Shift+P,搜 Playback Macro 并执行,看是否复现原动作。不行就重录,别试图“修”错的宏。
保存必须写对路径:Packages/User/xxx.sublime-macro
保存不是点“确定”就完事。必须走 Tools → Save Macro,文件名以 .sublime-macro 结尾,且**必须存到 Packages/User/ 目录下**——这个路径不能手动改,也不能填 ./xxx.sublime-macro 或本地绝对路径。
- 绑定快捷键时,
file参数必须严格匹配:"file": "Packages/User/add_semicolon.sublime-macro" -
Packages/User/是固定前缀,不是你电脑上的磁盘路径 - 文件名区分大小写:
AddSemicolon.sublime-macro和add_semicolon.sublime-macro是两个文件 -
command必须小写拼成run_macro_file,写成Run_Macro_File就无效
宏文件本质是 JSON,可手动编辑但要小心
保存后的 .sublime-macro 是纯 JSON,内容是命令对象的有序数组,例如:
[ { "command": "select_all" }, { "command": "split_selection_into_lines" } ]
你可以用 Sublime 打开它删冗余步骤、调顺序,甚至组合多个宏命令。但注意:
- 删掉某一步可能破坏后续命令依赖的选区或光标状态
- 加延迟、条件判断等高级能力需配合插件,宏本身不支持
- 修改后务必在空白文件试一次完整回放,避免引入新问题
最常被忽略的细节是:宏不记录“意图”,只记录“按键”。你录的是“按了什么”,不是“想做什么”。所以每次回放前,得手动确保环境一致——这才是它真正难用又容易翻车的地方。











