notepad++宏录制后需手动导出为shortcuts.xml并复制到plugins\config\nppshell\目录(路径不存在需创建),重启后才永久生效;仅“保存当前录制宏”仅存内存,不落盘。

宏录制后怎么保存到文件
Notepad++ 的宏默认只存在当前会话中,关掉软件就丢了。必须手动导出为 .xml 文件才能持久化。
- 录制完宏后,点击菜单 宏 → 保存当前录制的宏…,输入名字(如
format_json),选好保存路径即可生成一个.xml文件 - 该文件本质是纯文本,可直接用 Notepad++ 打开编辑——比如改
name属性或调整action的message值(对应按键/命令 ID) - 别存到系统临时目录(如
%TEMP%),否则重启后可能被清理;建议统一放在%APPDATA%\Notepad++\macros\下便于管理
如何重新加载已保存的宏文件
Notepad++ 不支持“导入宏”菜单项,只能靠替换配置文件或手动合并。
- 关闭 Notepad++,把你的
xxx.xml文件内容复制进%APPDATA%\Notepad++\shortcuts.xml的<macros></macros>节点内(注意保持 XML 格式合法) - 更安全的做法:先备份原
shortcuts.xml,再用文本比对工具(如 WinMerge)把新宏的<macro>...</macro>块粘贴进去 - 重启 Notepad++ 后,新宏就会出现在 宏 → 运行宏 列表里;如果没出现,检查
shortcuts.xml是否有未闭合标签或非法字符
宏绑定快捷键后为什么按了没反应
快捷键冲突或宏定义不完整是主因,尤其在多显示器、远程桌面等环境下容易失效。
- 确认快捷键没被系统或其他软件占用(比如
Ctrl+Shift+F常被输入法拦截) - 宏里含鼠标操作(如
SC_SEL_CANCEL)或依赖窗口焦点时,切换标签页或最小化后再触发会失败 - 某些动作(如
SCI_REPLACEALL)需要文档处于可编辑状态;若宏开头没加SCI_SETREADONLY(0),在只读文件上会静默失败 - 快捷键设置在 设置 → 快捷键管理 → 宏 页签里,修改后需点
应用才生效,不是点确定就完事
多个宏之间能调用或组合吗
不能直接调用,但可通过模拟按键序列间接实现,代价是稳定性下降。
- 比如想让宏 A 执行完自动运行宏 B,可在 A 的末尾插入
SCI_SENDMSG模拟快捷键(需提前给 B 绑定唯一快捷键) - 更可靠的方式是把常用操作写成 PythonScript 插件(需安装插件),用
notepad.runMenuCommand()或editor.replace()等 API 控制流程 - 注意:宏录制不记录延时和条件判断,遇到弹窗(如保存提示)、异步加载(如大文件语法高亮)时极易中断,这类场景必须换脚本











