
用 Notepad 处理文本排版这件事我一开始是拒绝的。印象里它就是个比记事本功能多一点的代码编辑器直到有一次要整理一份从网页复制下来、带大量空行和乱缩进的数据逐行清到崩溃才真正去研究它的排版功能。这一研究就停不下来了Notepad 在 Windows 上做文本整理和格式化效率远超预期尤其是配合正则和列编辑这两大杀器几千行混乱数据基本是分钟级处理。这篇文章就总结我日常最高频的 10 个排版技巧穿插一些踩坑经验适合经常和数据文本、日志、表格导出的内容打交道的朋友参考。顺手说一句如果还没装 Notepad别去第三方下载站直接访问官网拿安装包或 zip 便携版Windows 11 上解压就能用省去很多捆绑软件的麻烦。1. 正则表达式两板斧清理和提取排版的基础功先说一个原则在用任何排版技巧之前先复制一份原文到新标签页留底。我在批量操作上吃过不少亏正则替换一旦写错又没有备份想恢复原状就很折腾。Notepad 的撤销步数虽然可以调但上千次替换之后回退也不一定可靠留底是最稳妥的护身符。1.1 批量清理空行和行尾空格从网页、PDF 或聊天记录里复制出来的文本最常见的毛病就是末尾带一堆空格、制表符行与行之间还有连续空行。手工删几百行会疯用查找替换一次搞定。打开替换对话框CtrlH勾选“正则表达式”查找目标输入[ \t]$替换为留空点“全部替换”。这里我故意不用\s$因为在 Notepad 的正则实现里\s会匹配包括换行符在内的多种空白字符实际用起来容易把换行一起处理掉结果行间出现奇怪的合并现象。老老实实用[ \t]匹配空格和制表符再加上行尾锚点$既准确又不容易误伤。处理空行查找目标输入^[ \t]*\r?\n替换为留空。这里\r?\n是为了同时兼容 Windows 的 CRLF 和 Unix 的 LF 换行^[ \t]*表示该行可以包含空格或制表符但没有任何可见字符。实际测试时有个细节如果文件末尾有多余空行这个表达式不一定能把最后一个空行删干净我一般多执行几次替换最后一次留下的空行手动删掉就行不影响大局。1.2 用捕获组提取字段并按列对齐清洗完文本下一个常见需求是把混乱格式变成结构化的整齐输出比如从日志里提取关键信息。假设原始数据长这样2025-01-05 12:33:10 [INFO] user_1024 订单 ORDER20250105123310 支付成功 2025-01-05 12:35:44 [ERROR] user_2048 订单 ORDER20250105123544 支付超时现在要把“日期、用户、订单号、状态”四个字段都提取出来用制表符分隔方便粘贴进 Excel。查找目标写^(\d{4}-\d{2}-\d{2}).*?user_(\d).*?(ORDER\d).*?(成功|超时|失败)$替换为\1\t\2\t\3\t\4执行替换后每一行就变成了四列布局直接右键复制粘贴到表格软件里对齐规则完全正确。需要说明的是Notepad 的替换文本支持\1这种反向引用写法不要和某些语言里的$1记混了。如果一次性写不对建议先选一小段文本用“替换”而不是“全部替换”看预览效果对不对再扩大范围。1.3 替换对话框里容易忽略的选项正则替换要稳定除了表达式本身还要注意对话框底部几个不起眼的选项。匹配新行默认不勾选此时.不会匹配换行符而$匹配的是行尾。一旦勾选.就能跨行匹配处理跨行合并时很有用但大文件里勾选后替换速度会明显下降要谨慎。搜索模式务必选“正则表达式”否则你输入^、\d都会被当成普通字符。范围替换对话框默认作用于整个文档如果只想处理选区文本可以在打开对话框前先选中部分内容再选择“仅选中的文本”。这个细节在处理大文件局部区域时很关键。这个组合拳解决的是排版中最常见的“脏乱”问题。我的习惯是拿到文本先清尾随空白再删空行最后再看需不需要提取字段顺序不能反否则空行会影响字段提取的匹配结果。2. 列编辑模式批量改前缀后缀的神器如果说正则解决的是“内容怎么变”列编辑解决的就是“位置怎么改”。很多人用了很久 Notepad 都没发现它其实支持类似专业编辑器里的矩形选区可以在多行的同一个列位置同时插入、删除、修改内容。2.1 进入列模式的方式在 Notepad 里按住Alt键再按住鼠标左键拖拽就能拉出一个矩形选区。也可以把光标移到起点按住AltShift后用方向键扩展选区。选中的区域会以矩形框显示不受每行文字长短影响。举个例子有 50 行数据想在每行开头加上[VIP]前缀。光标移到第一行行首按住Alt向下拖选中 50 行开头位置直接输入[VIP]此刻你会看到 50 行同时被插入了同样的文字。这个效果类似批量光标但矩形选区的方式更直观。2.2 列编辑器插入递增数字的真正解法很多人问列模式能不能插入序号 1、2、3……答案是列模式本身不能但 Notepad 有专门的功能。先拉出矩形选区比如第一列位置打开菜单“编辑 → 列编辑器…”快捷键是AltC。在弹出的对话框里选择“数字”设置起始值为 1增量为 1再指定十进制和位数比如行数超过 100 就设 3 位会自动生成 001、002……这个功能在给代码段加编号、给表格数据补序号、给测试用例加编号时非常实用。没有列编辑器之前我都是先把序号写入 Excel再粘贴回 Notepad现在一步搞定。2.3 列模式的坑短行自动补空格列模式插入文本时有个隐蔽坑如果选中的区域到达的位置超过了某些短行的实际行尾Notepad 会自动用空格补齐这些短行让它们“够到”插入点。看起来没什么但如果你后续要把这些内容导入到严格格式要求的系统里那些自动补出来的空格就会变成麻烦。我的处理方式是列操作完成后紧接着跑一次正则清洗把行尾空格用前面说的[ \t]$清掉就干净了。矩形删除也是类似逻辑。比如日志每行开头都有[2025-01-05]这种时间戳想快速移除用列模式把时间戳区域框选中按Delete即可批量删除而不用逐行操作。删除时超出短行范围的部分会自动截断不影响其他行的内容。3. 从乱到序排序、去重、编码和换行符转换排版不只是把字面变得好看还包括把冗杂数据变成可用的干净数据。这一节说几个“整理役”的常规手段其中编码转换是很多人栽过跟头的地方。3.1 排序和去重的边界意识菜单“编辑 → 行操作 → 排序…”可以按行排序默认是字符串序支持升序降序还提供忽略大小写、按整数/小数排序等选项。对于纯数字的排序记得用“按整数排序”否则10会排在2前面这是新手比较常遇到的问题。去重对应“编辑 → 行操作 → 移除重复行”。注意这个操作是全局去重保留第一次出现的那一行删掉后面所有重复项。如果只是想把连续重复的相邻行合并比如程序反复输出相同日志内置去重会把非相邻的同类行也一起删掉反而误伤数据。处理相邻重复行的正则思路是查找^(.*\r?\n)(?\1$)替换为空然后反复点“全部替换”直到没有匹配为止。每次替换删掉一行相同内容最终剩下的就是连续去重后的结果。这个方法在 VSCode 里同样适用。排序还有一个特别提醒如果你在表格数据里框选某一列进行排序Notepad 允许这样做但它只重排这一列不会同步调换其他列的顺序这意味着行与行之间的对应关系会被打乱。所以在多列表格数据里我从来不对单独一列排序要排就整行排保证数据关系不错位。3.2 编码转换乱码修复的正确打开方式记事本和 Notepad 乱码绝大多数是编码读取方式错了。修复顺序非常重要。先看右下角状态栏显示的当前编码。如果打开后中文乱码不要直接在乱码状态下“转为 UTF-8”那会把已经解释错的字符再次转码结果是乱上加乱。正确的做法是先在“编码”菜单里尝试勾选“使用 ANSI 编码”或“使用 UTF-8 编码”切换 Notepad 对这个文件的解释方式直到内容显示正常。确认显示正常之后再根据后续使用场景选择“转为 UTF-8 编码”或保留原样。怎么判断原文件到底是啥编码有个经验口诀如果看到“涓栫晫”“鏉庡厛鐢?”说明原文件是 UTF-8 但被按 GBK/ANSI 读取了如果看到“鎴戠殑”“鍟婂憖”这种带大量锈蚀感的字说明原文件可能是 GBK 却被按 UTF-8 读取了。判断出实际编码就能选对菜单项。另外保存时注意“转为 UTF-8”和“转为 UTF-8-BOM”是两种不同的动作。Linux 下的脚本和很多解释器对 BOM 很敏感如果保存成带 BOM 的 UTF-8脚本第一行可能会报错。如果这份文件要传到 Linux 服务器上运行保存时建议选不带 BOM 的 UTF-8。3.3 CRLF 与 LF跨平台排版最容易忽略的坑换行符看不见摸不着却经常捣乱。Windows 默认使用 CRLFLinux 和 macOS 默认使用 LF。在 Windows 11 上编辑从服务器拉下来的脚本文件如果文件是 LF有些工具能正常显示但 bash 脚本或 Python 脚本到 Linux 上运行时报奇怪的command not found往往就是文件行尾是 CRLF 的锅。Notepad 状态栏右下角会显示当前文件的换行类型比如“Windows (CRLF)”或“Unix (LF)”。在菜单“编辑 → 行尾 →”里可以直接转换成 Windows 格式CRLF、Unix 格式LF或老 Macintosh 格式CR。我习惯在处理完内容、保存之前统一确认一次行尾格式。如果这份文本最终要贴到网页后台或发到服务器上用“转换为 Unix (LF)”如果只是本地 Windows 工具链使用保留 CRLF 也行。转成哪种并不绝对但一定要统一混合换行的文件在后续处理中问题最多。4. 查找替换的进阶组合日志筛选批量处理基础的查找替换大家都会但加上书签和“在文件中查找”以后处理能力完全是另一个量级。这一节最实用的场景是从大量日志里按条件筛行以及批量替换前的全局评估。4.1 “标记全部 书签”把日志行搬来搬去假设有一个 10 万行的日志文件要单独提取出所有包含ERROR的行做分析。方法非常简单打开查找对话框CtrlF输入ERROR。点击“标记全部”所有匹配行会被高亮同时行号左侧出现标记圆点这相当于给它们加了书签。用菜单“搜索 → 书签 → 复制书签行”打开新文件粘贴提取完成。如果要把匹配行从原文件里剔除就选“删除书签行”剩下的就是不包含ERROR的内容。还有一个反向操作比如我想保留“不匹配”的行先用“标记全部”再执行“搜索 → 书签 → 反向书签”匹配的书签会被清掉原来的非匹配行变成书签这时候再复制书签行即可。日常排查日志时书签配合F2和ShiftF2键跳转非常流畅可以在所有匹配点之间快速往返不用鼠标在几万行里乱滚。有个注意点如果匹配项特别多比如几万个一次性“标记全部”会有短暂卡顿但比手工操作还是快得多。4.2 “在文件中查找/替换”批量改东西前的评估手段有时候要改的不是单个文件而是一个目录下几十个文件里的公共内容。这时候用“搜索 → 在文件中查找”CtrlShiftF可以指定目录、文件后缀过滤条件一次搜出所有匹配位置双击结果还能直接跳到对应文件的对应行。真正要批量替换时更稳妥的做法是先用“在文件中查找”摸清匹配范围确认哪些文件会受影响、大概有多少处匹配确认无误后再切到“在文件中替换”。原因是“在文件中替换”会直接改写磁盘上的文件这个操作没有撤销机制一旦正则表达式写错可能会把一堆文件改坏。我的习惯是替换前先把整个目录复制一份备份或者用 Git 先提交一次再动手。有人会说这样多做几步是不是太谨慎了在批量处理这件事上谨慎永远不亏。我见过有人批量替换时把导出数据的全角冒号误替换成半角导致业务系统识别出错前后返工半天就是因为没有提前看匹配列表。5. 宏录制和插件把重复排版变成一键完成整理文本的操作往往不是一次性的而是隔三差五来一遍。如果每次都是点同样的菜单做同样的替换人就会烦。这时候就应该录一个宏。5.1 宏录制的正确姿势Notepad 的宏功能藏在“宏”菜单里操作逻辑是开始录制 → 执行你要重复的操作 → 停止录制 → 保存并命名 → 之后随时一键回放。举一个我日常用到的完整例子处理从系统导出的 CSV 数据时几乎每次都要做“去行尾空格 → 删除空行 → 按逗号字段排序 → 移除重复行”这几步。手工操作大概一分钟但录成宏之后每次点一下“宏 → 运行宏”就全部完成了。录制时有个关键细节尽量用键盘快捷键完成所有操作。因为鼠标点击工具栏按钮或者某些对话框按钮录制效果并不稳定可能拍不进去而 CtrlH 打开替换对话框后用键盘输入查找内容和替换内容、再通过菜单或快捷键触发“全部替换”则能稳定录制下来。录完之后记得把宏另存一个响应式名字比如“清洗CSV”这样以后打开宏菜单一眼就能认出来。5.2 排版本命插件TextFX 和 NppExport 的取舍在插件的选择上我现在的原则是能用内置功能就用内置别盲目装一堆插件增加负担。TextFX老牌的文本处理插件提供大小写转换、行首加字符、排序、统计字符数等实用功能。不过新版 Notepad 已经不再预装它了而且它的多数能力跟内置功能重叠如果不是从旧版迁移过来的老用户不装也完全没问题。NppExport这个插件我是推荐的它的作用是导出带语法高亮的文本为 RTF 或 HTML直接复制粘贴到 Word、WPS 里就能保留代码配色写技术方案时非常刚需。Compare对比两个文件差异适合在批量排版前核对原始文件和整理后文件的差异范围防止改过头。插件安装方面Notepad 8.x 版本内置了“插件管理”入口打开“插件 → 插件管理”可以搜索并安装插件。装完记得重启 Notepad 让插件生效。如果插件管理里找不到想要的插件也可以去官方渠道下载对应的 zip 包解压后放进 Notepad 的 plugins 目录里。这里特别提醒不要从第三方下载站拿那些“集成版”“一键安装版”捆绑文件和广告弹窗会让人怀疑人生。5.3 便携版配置备份改电脑不丢效率最后安利一下便携版的使用方式。在官网下载 zip 格式的压缩包解压到一个固定目录双击notepad.exe就能运行Windows 11 上完全兼容。便携版的好处是整个软件连同配置都放在目录里插件、宏、快捷键配置跟着文件夹走。换电脑的时候把这个目录整个拷过去可执行文件和全部配置原样恢复不用重装任何东西。如果已经装了安装版其实也可以通过复制%APPDATA%\Notepad目录来备份配置只是便携版更直观、更符合“随身工具”的定位。我自己的做法是单独建一个Tools\Notepad目录把 portable 版放进去配好常用宏之后打一个压缩包放网盘在任何一台 Windows 机器上都能 30 秒进入工作状态。这些技巧单拎出来每一个都不复杂但组合在一起威力就出来了。我自己常用的工作流是新拿到一份混乱文本先打开“视图 → 显示符号 → 显示空格与制表符”把所有不可见字符暴露出来看清结构再动手然后用正则清理空行和尾随空白用列编辑器补齐序号或对齐字段最后用宏把这一套流程固定下来。排版这件事很多时间其实不是花在内容上而是花在反复处理隐藏的空格和换行上搞定了这些效率翻倍就不是夸张的说法了。最后分享一个我个人的小习惯不管用什么技巧大规模操作前先按 CtrlA、CtrlC把全文复制到新标签页留个底。这个动作三秒钟却能在你连续误操作之后救回一整天的劳动成果值得养成。