宏录制前须确认文件编码与bom一致,否则格式化会导致乱码或解析错误;录制时仅执行一次pretty print操作;运行宏应选“run multiple times…”并填入标签页数;64位notepad++需安装32位版本及正确路径的xml tools插件。

宏录制前必须确认文件编码和BOM
Notepad++ 的宏本身不处理编码,但格式化操作(比如 Pretty print (XML only))依赖当前文件的编码解析。如果文件是 UTF-8-BOM,而状态栏显示为 ANSI 或 UTF-8(无BOM),格式化后会出现缩进错乱、中文变问号、甚至报 XML Parsing Error: not well-formed。
操作前务必检查右下角状态栏编码标识,再核对文件头是否含 <?xml version="1.0" encoding="UTF-8"?>。不一致时,先用 Encoding → Convert to UTF-8(注意不是 “Encode in UTF-8”)统一编码,再开始录制。
录制宏时只录一次格式化动作,别加多余操作
宏的作用是复现“单次操作”,不是写脚本。XML Tools 的 Pretty print (XML only) 是一次性全文件格式化命令,不需要选中文本、也不需要光标定位——它自动作用于整个文档。
- 打开一个 XML 文件,确认编码正确
- 点击
Macro → Start recording - 直接按快捷键
Ctrl+Alt+Shift+B(或菜单调用),等格式化完成 - 立刻点
Macro → Stop recording,不要移动光标、切换标签页或做任何额外按键
多按一次 Ctrl+Z 或误触 Ctrl+S 都会被录进去,导致回放失败或保存脏数据。
运行宏必须用 “Run multiple times…” 而非 “Run until the end of file”
Notepad++ 宏回放默认只对当前标签页生效。所谓“批量”,本质是让宏在每个标签页上各执行一次。但菜单里有两个相似选项,容易选错:
-
Run until the end of file:这是针对**当前文件内重复执行同一操作直到文件末尾**,比如逐行加前缀,完全不适用于跨标签页 -
Run multiple times…:这才是正确入口,弹窗里填入你打开的 XML 标签页总数(比如开了 12 个文件,就填 12)
执行时,焦点必须保留在第一个标签页——Notepad++ 会在每次宏执行完后自动跳到下一个标签页,这是它的内置行为,无需手动切页,也别中途点击其他标签。
64 位 Notepad++ 无法加载 XML Tools 插件
即使宏录制和回放流程都对,Pretty print (XML only) 功能仍不可用,大概率是插件没加载成功。XML Tools 2.4.12 只提供 32 位 DLL,而当前主流安装包默认是 64 位。
验证方式:启动后看菜单栏是否有 Plugins → XML Tools。没有的话,说明插件未加载。
- 卸载现有 Notepad++,去官网下载带
(32-bit)标识的安装包 - 插件文件
XMLTools.dll必须放在plugins\目录下(不是plugins\XMLTools\) - 解压的是
XMLTools_2.4.12.zip,不是 GitHub 上最新版(如 2.5.x)
插件加载失败时,宏能录能放,但 Ctrl+Alt+Shift+B 按下后毫无反应——这是最隐蔽的失败点,容易误判为宏问题。











