Notepad++宏无法智能整理文本格式,仅机械回放键盘操作;必须将格式处理拆解为统一换行符、清理空白、正则标准化三步纯键盘动作,且需手动分配快捷键并启用启动加载才能稳定使用。

Notepad++ 的宏不能直接“智能整理文本格式”,它只机械回放你录下的按键动作;想靠宏批量处理缩进、对齐、空行、换行符等,必须把格式问题拆解成可键盘驱动的确定步骤,否则一回放就错位。
为什么直接录“选中→右键→格式化”会失败
Notepad++ 宏不记录鼠标操作、菜单点击和插件 UI 交互。你点 TextFX → HTML Tidy → Reindent XML,或者用鼠标右键调出“格式化”选项,这些动作根本不会被录制。宏看到的只有你按下的 Ctrl+H、Home、↓ 这类键盘命令。
- 能录的:Ctrl+Shift+I(TextFX 的缩进)、Ctrl+U(转大写)、Ctrl+H 后手动输入正则并点“全部替换”
- 不能录的:“右键→格式化 XML”、“HTML Tidy 窗口里的确定按钮”、“Python Script 控制台里敲代码”
- 后果:录制时看似成功,回放时卡在替换框没点“全部替换”,或光标停在错误位置,后续操作全偏移
真正能落地的格式整理宏组合
把“格式整理”转化成三步可录制动作:统一换行符 → 清理空白 → 正则标准化。每步都用键盘触发,不依赖鼠标。
- 第一步:统一换行符(防跨平台错乱)
按 Ctrl+H → 搜索模式选「扩展」→ 查找\r\n或\n(看状态栏提示)→ 替换为\r\n→ 点「全部替换」 - 第二步:删空行和首尾空格
Ctrl+H → 模式切「正则表达式」→ 查找^\s*$\R?→ 替换为空 → 再查^[ \t]+|[ \t]+$→ 替换为空 - 第三步:按需正则对齐(如 JSON 键值对冒号对齐)
查找^(\s*"[^"]+":)\s+(.*)$→ 替换为$1 $2(4个空格)→ 勾选「匹配大小写」和「. 匹配换行符」视情况启用
这三步全部用键盘完成(Tab 切换控件、Enter 确认),就能稳定录进宏。
列编辑 + 宏配合做对齐类整理
宏本身不能录 Alt+鼠标拖选,但你可以先用列编辑器手动对齐一次,再把“插入空格/制表符”动作录进去——前提是所有目标行长度一致、列位置固定。
- 先人工对齐:Alt+Shift+↓ 选中要对齐的多行冒号前区域 → Alt+C → 选「插入文本」填空格 → 确定
- 再录制宏:Macro → Start Recording → 按 Home → 输入空格 → ↓ → 重复(确保每行操作数相同)
- 风险点:如果某行字段缺失(如
"age":后无值),光标移动后按空格会插到错误列,宏无法判断跳过
保存后快捷键不生效?两个硬性条件缺一不可
录完宏只是存在内存里,不等于可用。必须同时满足:
- Settings → Shortcut Mapper → Macros → 找到你的宏名 → 双击右侧空白列,分配快捷键(如
Ctrl+Alt+F) - Settings → Preferences → Backup → 勾选
Enable macro at startup(否则重启后宏名从菜单彻底消失)
宏没有上下文感知能力,它不管你是处理日志、JSON 还是 CSV —— 它只认光标在哪、你按了什么键。所谓“文本格式整理”,本质是你自己把规则翻译成键盘指令,再喂给它执行。


















