Sublime宏必须用快捷键录制和回放:Windows/Linux下Ctrl+Q录、Ctrl+Shift+Q播,macOS对应Cmd键;宏文件须存于Packages/User/目录且后缀为.sublime-macro;回放失败多因未保存、路径错误或上下文变化。

Sublime 的宏不能靠“点菜单”来可靠录制或回放,必须用快捷键,否则大概率录错、播不出、重启就丢。
Ctrl+Q 和 Ctrl+Shift+Q 到底谁录谁播?
Windows/Linux 下:Ctrl+Q 是「开始/停止录制」,Ctrl+Shift+Q 是「播放最近一次录制的宏」;macOS 下对应为 Cmd+Q 和 Cmd+Shift+Q。别记反——按错一次就会把「停止录制」当成「播放」,结果光标乱跳、啥也没输。
常见错误现象:
- 点了
Tools → Playback Macro没反应,其实是它不绑定命令面板,只响应快捷键 - 按了
Ctrl+Shift+Q却执行了别的命令,说明你之前没成功录制过,或者刚录完没保存就关了 Sublime - 状态栏右下角没看到
Recording macro提示?不是失败,是它太低调;只要没报错,Ctrl+Q按下去就真在录
为什么宏保存后还是找不到、播不了?
保存路径和文件名格式错一个,Sublime 就当它不存在。宏文件不是普通 JSON,它必须被 Sublime 主动加载,而加载逻辑只认两个地方:Packages/User/ 目录,且后缀必须是 .sublime-macro。
实操建议:
- 保存时不要手动填路径,必须选中
Packages/User/文件夹(可通过Preferences → Browse Packages…快速打开) - 文件名不能带空格或中文,比如
add_semicolon.sublime-macro可以,Add Semicolon.sublime-macro或添加分号.sublime-macro会失败 - 绑定快捷键时,
file参数必须写全:"file": "Packages/User/add_semicolon.sublime-macro",漏掉Packages/或大小写错,都加载失败
宏回放失败,八成卡在这三个现场
宏不是智能脚本,它只机械重放按键流。哪怕光标偏移一个字符、文件类型变了、插件临时禁用,都会中断。
最容易被忽略的三点:
- 回放前没手动把光标挪到目标位置——宏不会自动找行、不会批量处理,你录的是「删当前行」,就得把光标放在那行开头再按
Ctrl+Shift+Q - 录制时用了
Tab触发 Emmet 补全,但回放时文件不是.html,或 Emmet 插件被禁用,动作直接卡住,后续全失效 - 宏还在内存里,根本没保存——Sublime 不像 VSCode 那样自动持久化,关掉就清空,重启后等于白录
验证是否录对,最快方法:停止录制后立刻按 Ctrl+Shift+P,搜 Playback Macro 并执行,看是否复现原动作。不行就重录,别试图修 JSON —— 宏文件里混进一个多余的 {"command":"undo"},回放时就会多一次撤销,节奏全乱。
宏能干啥、不能干啥,得心里有数
它适合做「固定上下文下的确定性操作」,比如统一加 ;、拆行后缩进、选中后转小写;但凡涉及条件判断、正则匹配、剪贴板读写、鼠标点击、弹出面板(Ctrl+F、Ctrl+Shift+P),它就无能为力。
多光标操作可以录,但前提是纯键盘:用 Ctrl+D 逐词选中、Ctrl+Shift+L 拆行,这些会被转成命令;用鼠标拖选?完全不记录。
真正麻烦的点不在录制,而在维护——同一个宏,在不同项目里可能因插件状态、语法高亮模式、甚至缩进设置差异而行为不一致。所以别指望一个宏走天下,该重录就重录,别硬扛。

















