ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Notepad++宏整理:导入shortcuts.xml实现批量文本处理

Notepad++宏整理:导入shortcuts.xml实现批量文本处理 简介这份资源聚焦 Notepad 宏功能的实战应用面向需要批量处理文本的编程开发者与文字工作者帮助解决重复编辑、格式转换等低效问题。内容围绕常用宏整理与宏制作教程展开涵盖将 和 替换为 、注释与取消注释、删除空行、标记 #{ 符号、添加引号并替换换行符为逗号等典型场景导入宏文件即可直接使用也可按需自主编辑并说明了宏文件的具体存放位置。资源包共 2 个文件包含 1 个 xml 宏配置文件与 1 个 txt 说明文档压缩包约 6KB体积轻巧便于快速导入。Readme 文档详细介绍了宏的基本概念、设置方法与使用步骤即使是初学者也能按引导完成创建、编辑与运行宏的全过程。目前已有 1128 人学习适合希望借助宏脚本提升文本处理效率、减少机械重复操作的读者参考使用。1. 从一次手工替换 3000 行 XML 说起这套 Notepad 宏资源到底能省多少事上周帮同事处理一份导出的配置文件三千多行需要把所有的gt;和lt;还原成尖括号再把换行符换成逗号、删掉末尾多余的逗号。手工做眼睛会瞎正则写快了又容易误伤。这种场景下Notepad 的宏功能就是那个被大多数人忽略的快捷键——它不需要你懂脚本语言录制一遍操作就能回放而这份「Notepad宏整理」资源本质上是把一批高频文本处理动作提前录好、打包成shortcuts.xml你导入就能用也能自己改。它解决的不是「Notepad 怎么装」这种问题而是「我已经在用 Notepad但每次遇到批量替换、注释、清空行都要重新想正则」的重复劳动。适合两类人一是经常处理日志、配置、导出数据的开发者二是需要批量整理文本的文字工作者。资源里包含宏文件、Readme 说明和常用符号整理核心就是让你跳过「从零录制」这一步直接拿现成的宏脚本替换使用。下面我会把宏文件位置、导入方法、每个宏的实际逻辑和几个容易翻车的地方拆开讲。2. 宏文件到底放在哪shortcuts.xml 的定位与导入机制2.1 Notepad 宏的存储逻辑Notepad 的宏不是存在注册表里而是写在一个叫shortcuts.xml的配置文件里。这个文件位于 Notepad 的安装目录或者用户配置目录下具体路径取决于你是安装版还是便携版。安装版通常在%APPDATA%\Notepad\下便携版则在程序同级目录的%Notepad%\文件夹里。你可以通过菜单「设置」→「导入」→「导入宏」来加载别人整理好的宏但更直接的方式是找到shortcuts.xml把资源里的宏节点合并进去。为什么强调这个文件位置因为很多人导入宏之后发现没生效八成是改错了shortcuts.xml——比如系统里装了两个版本的 Notepad或者用了便携版却去改 AppData 里的文件。我一般会先通过「宏」→「管理宏」→「修改快捷键」界面确认当前生效的配置文件路径再动手替换。2.2 导入宏的两种实操路径第一种是图形界面导入打开 Notepad菜单栏「设置」→「导入」→「导入宏」选择资源包里的shortcuts.xml。注意这个操作会覆盖你现有的宏列表如果你之前自己录过宏先备份。第二种是手动合并用 Notepad 打开你自己的shortcuts.xml找到Macros节点把资源包里对应的Macro子节点复制进去保存后重启 Notepad。手动合并的好处是可以保留原有宏只追加新的。资源包里的shortcuts.xml通常包含多个Macro节点每个节点有name属性和若干Action子节点。下面是一个典型的宏节点结构我拿「删除所有空行」举例Macro name删除所有空行 Ctrlno Altno Shiftno Key0 Action type3 message1700 wParam0 lParam0 sParam / Action type3 message1601 wParam0 lParam0 sParam^[ \t]*\r?\n / Action type3 message1625 wParam0 lParam0 sParam / Action type3 message1702 wParam0 lParam0 sParam / /Macro这段 XML 的逻辑是message1700对应「全选」message1601是打开替换对话框并填入正则^[ \t]*\r?\nmessage1625执行全部替换message1702关闭对话框。参数sParam就是正则表达式本身你可以直接改这个值来调整匹配规则。注意Ctrl、Alt、Shift、Key这四个属性是绑定快捷键用的如果都是no和0说明这个宏没有默认快捷键需要你手动在「管理宏」里分配。提示修改shortcuts.xml前先复制一份备份Notepad 启动时会读取这个文件格式错误会导致宏菜单直接消失。3. 七个高频宏的逐条拆解从符号转义到引号拼接3.1 符号转义类宏 与 的双向替换资源里有两个宏专门处理 HTML 实体符号的还原和转义。第一个是「将gt;和lt;替换为」第二个是「将和替换为gt;和lt;」。这两个宏在 XML、HTML 配置文件的手工修复中非常实用。比如你从某个系统导出的配置里尖括号被转义成了实体想还原成可读的标签结构就用第一个宏。实现上它本质是两次替换动作的串联。在shortcuts.xml里你会看到两个连续的Action节点分别对应gt;→和lt;→。注意顺序不能反否则gt;里的可能被二次转义。我一般会检查sParam里的正则是否用了\转义因为在正则里虽然不算特殊字符但在某些替换模式下需要写成\才能避免被解释为反向引用。Macro name将gt;和lt;替换为lt;gt; Ctrlno Altno Shiftno Key0 Action type3 message1601 wParam0 lParam0 sParamamp;gt; / Action type3 message1602 wParam0 lParam0 sParamgt; / Action type3 message1625 wParam0 lParam0 sParam / Action type3 message1601 wParam0 lParam0 sParamamp;lt; / Action type3 message1602 wParam0 lParam0 sParamlt; / Action type3 message1625 wParam0 lParam0 sParam / /Macro这里message1601是设置查找内容message1602是设置替换内容message1625是执行替换。sParam里的amp;gt;是 XML 转义后的gt;因为shortcuts.xml本身是 XML 文件必须写成amp;。如果你手动改这个文件这一点很容易搞错改完发现宏不工作其实就是 XML 解析失败了。3.2 注释与取消注释语言无关的批量操作「注释/取消注释」这个宏在资源里被单独列出来说明它的使用频率很高。它的实现方式是在行首插入或删除指定符号。Notepad 自带的快捷键CtrlQ是块注释但那个依赖语言解析对纯文本文件无效。这个宏的做法更暴力直接在当前行行首插入//或者删除行首的//。具体操作逻辑是先按Home键回到行首然后插入//。取消注释则是用正则^//替换为空。这个宏的局限在于它只处理单行如果你选中了多行需要配合「列编辑」模式或者先录制一个多行版本。我一般会把它和CtrlH的正则替换配合使用选中多行后用宏批量处理。3.3 空行清理与标记删除空行和标记 #{ 符号「删除所有空行」和「删除空行」这两个宏看起来重复实际区别在于匹配规则。前者匹配的是^[ \t]*\r?\n也就是包含空格和制表符的「视觉空行」后者只匹配^\r?\n即严格意义上的空行。如果你处理的文件里有大量缩进留下的空白行用前者如果只是想去掉连续回车用后者。「标记全部的#{符号」这个宏比较特殊它不是替换而是用 Notepad 的「标记」功能把所有#{高亮出来。实现方式是message1601设置查找内容为#\{然后message1625执行「标记全部」。这个宏在排查模板语法错误时很有用比如你写了一个 Shell 脚本或者某个配置模板想快速定位所有变量插值的位置。Macro name标记全部的#{符号 Ctrlno Altno Shiftno Key0 Action type3 message1601 wParam0 lParam0 sParam#\{ / Action type3 message1625 wParam0 lParam0 sParam / Action type3 message1702 wParam0 lParam0 sParam / /Macro注意sParam里的#\{{在正则里是量词起始符必须用\转义。如果你直接写#{Notepad 会报正则错误。这个坑我在第一次改宏的时候踩过当时以为是宏坏了其实是正则没转义。3.4 引号拼接与换行转逗号数据清洗的典型场景「添加引号并替换换行符为逗号并删除最后一个逗号」这个宏名字很长但它是数据清洗里最实用的一个。场景是这样的你有一列数据每行一个值想把它变成 SQL 的IN条件或者 JSON 数组。操作步骤是先在每行行首行尾加引号然后把换行符替换成,最后删掉末尾多余的逗号。这个宏在shortcuts.xml里是一连串动作的集合。第一步用正则^(.)$替换为$1给每行加引号第二步用\r?\n替换为,第三步用, $替换为空。注意第二步的替换范围要选「全部替换」否则只替换当前行。这个宏的翻车点在于如果你的数据里本身包含逗号或引号替换后会破坏原有结构。我一般会先复制一份文件做测试确认数据里没有特殊字符再跑。注意这个宏默认使用\r?\n匹配换行能同时兼容 Windows 和 Unix 换行符。如果你的文件是 Mac 经典格式\r需要手动改成\r。4. 避坑与排查宏导入后不生效的五个血泪经验4.1 现象导入宏后菜单里看不到新宏原因Notepad 读取的是当前用户配置目录下的shortcuts.xml而你导入的文件可能被放到了安装目录。安装版和便携版的配置路径不同导入操作有时会写到错误的位置。解决通过「宏」→「管理宏」→「修改快捷键」界面点击「导入」按钮选择资源包里的shortcuts.xml让 Notepad 自己处理路径。导入后重启一次。4.2 现象宏执行到一半报「正则表达式错误」原因sParam里的正则没有做 XML 转义或正则转义。比如要写成amp;{要写成\{\要写成\\。解决用 Notepad 打开shortcuts.xml找到报错的那个Action节点检查sParam属性值。如果正则里包含、、必须用 XML 实体替换。4.3 现象宏替换了不该替换的内容原因正则匹配范围太宽或者没有勾选「全字匹配」。比如「删除空行」宏如果用了^$而不是^[ \t]*\r?\n会把包含空格的行也误删。解决在宏执行前先用CtrlF手动测试正则的匹配结果确认无误后再跑宏。我习惯在宏里加一步「查找全部」而不是直接替换先看匹配数量对不对。4.4 现象快捷键冲突按了没反应原因shortcuts.xml里Ctrl、Alt、Shift、Key四个属性绑定的快捷键和 Notepad 自带快捷键或其他插件冲突。解决在「管理宏」界面里重新分配一个不常用的组合比如CtrlShiftAltM。或者干脆不绑快捷键通过「宏」菜单手动点击执行。4.5 现象宏在部分文件里失效原因Notepad 的宏录制的是「动作序列」不区分文件类型。但某些动作比如「注释/取消注释」依赖当前语言的语法定义。如果你在纯文本文件里跑一个为 Python 录制的注释宏它可能插入#而不是//。解决检查宏的Action节点里是否包含语言相关的message编号如果有换成通用的行首插入动作。5. 自己改宏的进阶技巧从 shortcuts.xml 到可复用脚本5.1 用「宏」菜单录制并导出自己的宏资源包里的宏是别人整理好的但你的工作流里肯定有专属的重复动作。Notepad 的宏录制功能可以把你的一系列操作录下来然后通过「宏」→「停止录制」→「保存当前录制的宏」命名保存。保存后这个宏会写入shortcuts.xml你可以直接编辑它的sParam来微调正则。我一般会这样操作先手动做一遍完整流程确认每一步的按键和替换规则然后开始录制从头执行一遍停止后保存。接着打开shortcuts.xml找到刚保存的宏节点把里面的sParam改成更通用的正则。比如录制时匹配的是具体文本导出后改成^.$这样的通用模式。5.2 宏的批量管理与版本备份shortcuts.xml是一个纯文本文件这意味着你可以用 Git 管理它。我习惯把常用的宏节点单独抽出来放在一个my_macros.xml里每次 Notepad 升级或者换机器直接合并进去。资源包里的shortcuts.xml也可以这样处理不要直接覆盖而是用对比工具比如 WinMerge把新的Macro节点合并到现有文件里。下面是一个合并用的 Python 脚本片段用来把资源包里的宏节点追加到现有shortcuts.xmlimport xml.etree.ElementTree as ET # 读取现有配置和资源包配置 tree_existing ET.parse(shortcuts.xml) root_existing tree_existing.getroot() tree_new ET.parse(resource_shortcuts.xml) root_new tree_new.getroot() # 找到 Macros 节点 macros_existing root_existing.find(Macros) macros_new root_new.find(Macros) # 按 name 属性去重后追加 existing_names {m.get(name) for m in macros_existing.findall(Macro)} for macro in macros_new.findall(Macro): if macro.get(name) not in existing_names: macros_existing.append(macro) tree_existing.write(shortcuts.xml, encodingutf-8, xml_declarationTrue)这段脚本的逻辑是解析两个 XML 文件找到Macros节点遍历资源包里的每个Macro如果现有配置里没有同名宏就追加进去。参数encodingutf-8和xml_declarationTrue保证输出文件带 XML 声明Notepad 能正确读取。注意备份原文件脚本直接覆盖写入。5.3 验证宏是否生效的检查清单改完shortcuts.xml后不要急着关 Notepad。先打开「宏」菜单看新宏是否出现在列表里。然后新建一个测试文件输入几行样例数据手动执行一次宏观察输出是否符合预期。最后检查shortcuts.xml的文件修改时间确认你改的是当前生效的那个文件。我自己的习惯是每次改完宏配置先跑一个「删除所有空行」的宏做冒烟测试因为这个宏逻辑简单、结果直观。如果这个宏能正常工作说明shortcuts.xml的格式没问题其他宏大概率也能用。从那以后我每次导入或合并宏文件都强制走一遍「备份 → 合并 → 重启 → 冒烟测试」这四步再也没出现过宏菜单消失的翻车。希望帮到你。本文还有配套的精品资源点击获取
返回列表