Notepad++十大排版技巧:从列编辑到JSON格式化一次讲透

发布时间:2026/9/28 11:49:24
Notepad++十大排版技巧:从列编辑到JSON格式化一次讲透 记事本打开一段挤成一坨的文本光标点来点去半天理不出头绪——这种状态我太熟了。这些年我整理日志、清洗数据、校准代码排版几乎全部动作都是在 Notepad 上完成的它那套轻量外表下藏着的排版能力远比大多数人的认知要强。今天这篇就把我实际用下来的 10 个排版技巧按顺序讲透不聊花哨的理论只说能在工作时直接救命的手法。内容也会覆盖最近很多人关心的官网下载、JSON Viewer 插件安装算是把“下载完不知道该装什么”的坑一起填上适合每天和代码、日志、纯文本打交道的开发、测试、运维以及被报告和导出数据折磨的文档工作者。1. 列编辑模式按 Alt 画矩形几十行同步修改1.1 为什么说列模式是排版的“机械臂”普通编辑器的选区是流式的从 A 点拖到 B 点选中的是一段连续字符。但文本排版里经常需要处理的不是“一行连续内容”而是“每一行里固定位置的那几列”。举个例子你手里有一份 400 行的设备清单每行格式是“编号、IP、状态、备注”但第 3 列状态字段里混入了一批乱码。逐行去删几分钟到半小时不等用列编辑模式只需要按住 Alt 键从第一行状态字段起点拖到最后一个出问题的地方矩形选区直接框住所有乱码字符按一下 Delete 就全部清空。这就是列模式最直接的威力把“纵向重复操作”压缩成“一次矩形选区操作”。1.2 实操步骤三分钟学会列编辑基本操作是这样的按住 Alt 键用鼠标左键从目标位置拖动到结束位置形成一个矩形选区。如果你更习惯键盘按 AltShift方向键也能扩展矩形。在矩形选区里直接输入字符所有被框住的内容会同时被替换按 Backspace 或 Delete 会删除选区内的字符不会影响选区外的文本。矩形选区的内容可以复制选中后 CtrlC到目标位置再按住 Alt 创建一个同样尺寸的矩形框CtrlV 粘贴进去内容会按列对齐插入。如果系统把 Alt鼠标拖拽占用为窗口移动可以用 AltShift方向键来完成同样的操作。我实测过一种很常用的场景几百行 URL 里有的带http://前缀有的带https://想统一删掉前缀前 7 个字符。把光标放在第一行起始位置AltShift右方向键扩展 7 个字符宽度再按 AltShift下方向键扩展到全部行最后按 Delete前缀就被整体剥掉了。这种操作如果手工处理想想都头大。需要留意的是列模式下如果输入中文或全角字符占宽和半角字符不一样对齐效果可能会乱。做严格表格对齐时尽量用半角空格补位全角内容留在列选区外单独处理。2. 行操作快捷键调序、复制、删除三件套2.1 先记住这三个高频键排版不只是改内容更多时候是调整整行的位置、复制重复行、删掉不需要的行。对应到 Notepad下面三个快捷键是行级操作的底牌CtrlD复制当前行到下一行。光标不需要选中整行放在当前行任意位置就行。CtrlShiftUp / CtrlShiftDown把当前行向上或向下移动。CtrlL删除当前行。这三个键组合起来基本可以覆盖日常 80% 的行级整理需求。尤其是 CtrlD它在生成连续模板时特别好用比“复制-粘贴”少了很多回车换行的问题。2.2 实际整理段落时的正确姿势有一回我手动整理一份服务器列表前后顺序和预期不符每个 server 块大约 10 行。一开始我用“剪切-移动到目标行-粘贴”动作多、容易错位后来改成把光标放在要移动的区块整行上多选几行后按 CtrlShiftUp/Down 整体移动一下子就顺手了。配合 CtrlD 复制模板块再微调几处差异整个文件很快就齐整了。一个容易踩的坑CtrlL 是删除行不是剪切行。如果你想把这行挪到别处再用需要先按 CtrlX 剪切再粘贴到目标位置直接按 CtrlL内容就没了只有撤销能救回来。多行选区同样支持 CtrlC、CtrlX、CtrlShiftUp/Down操作逻辑和单行一致。顺序调整完之后建议顺手再检查一下空行。如果多行快速移动后出现空行残留等后面第 8 个技巧里用宏和正则统一清掉更省事。3. 正则替换让脏文本一夜之间长出整齐的分隔符3.1 正则替换为什么是排版核心能力普通替换是“查这个字换成那个字”正则替换是“按模式匹配按模式改造”。排版场景里脏文本往往不是固定字面量而是“行尾多余的空白”“缩进混乱”“夹在中间的时间戳”“格式不统一的日期”。这些用普通替换处理不了用正则却可以精准命中。Notepad 的正则引擎基于 PCRE常用符号和 Perl 类似。几个最常用的模式目标查找内容替换内容删除每行行尾空格[ \t]$留空把多个空格或制表符合并为一个空格[ \t]一个空格去掉行首冗余缩进^[ \t]留空或替换为固定缩进删除开头的时间戳^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}[ \t]留空日期格式整理为“日/月/年”(\d{4})-(\d{2})-(\d{2})$3/$2/$1比如最后一条能把2025-03-14这种 ISO 格式批量转成14/03/2025。捕获组(\d{4})会把匹配到的片段记住替换时用$1、$2、$3引用这是正则排版的精髓。3.2 使用正则替换的操作顺序与避坑按 CtrlH 打开替换窗口查找目标和替换内容分别填到输入框注意把右下角的搜索模式切到“正则表达式”。正式点击“全部替换”之前一定先点“查找下一个”看一眼实际高亮确认匹配范围没有误伤再动手。两个最容易翻车的细节句点.默认不匹配换行符。如果正则没勾选“匹配换行符”选项.*通常只会吃掉一行内容跨行匹配会失败。替换文本里如果需要写入换行要明确写\r\nWindows 风格。只写\n在某些场景下不会产生真正的 Windows 换行粘贴到其他 Windows 工具里可能显示成一行。正则替换属于破坏性操作文件又大又乱的时候先另存一份副本再动手是很好的习惯。另外不要一口气写一个“万能正则”把复杂目标拆成几次小替换每一步都能肉眼验证反而比一把梭更稳。4. 书签与标记把 5000 行日志里真正关键的行“摘”出来4.1 书签和标记不是一回事刚接触 Notepad 时我经常把书签和搜索标记搞混。它俩长相相似但用途不同书签CtrlF2 在当前行添加或移除一个书签F2 跳到下一个书签ShiftF2 跳到上一个。书签相当于手动给行打旗子适合少量定位。标记在“搜索 → 查找 → 标记”选项卡里输入关键字点击“全部标记”所有匹配到的内容会被高亮显示并且可以在行末留下标记。书签适合人工判断哪些行有用标记适合按规则批量“点名”。排版整理场景里标记的用处更大因为它可以配合后续的“复制已标记行”“删除未标记行”动作直接把有效内容提取出来。4.2 从日志海里捞错误行的完整链路假设手头有一个 5000 行的应用日志目标是提取所有包含ERROR、Exception、Traceback的行。操作顺序CtrlH 打开查找窗口切到“标记”选项卡。输入ERROR|Exception|Traceback勾选“正则表达式”。点击“全部标记”所有命中行都会出现高亮标记。打开菜单“搜索 → 书签 → 复制已标记的行”。新建一个文档CtrlV 粘贴干净的错误清单就出来了。如果想反过来只保留这些关键行删除其余内容可以用“搜索 → 书签 → 删除未标记的行”。这个动作是直接改原文件的建议先 CtrlS 备份再操作。这个思路再延伸一步不只是日志任何需要“按规则筛行”的场景都能用。比如从导出的订单数据里提取所有“失败”状态的记录、从接口文档里摘出所有带required字段的行本质都是先标记再建模复制一气呵成。5. 在文件中批量替换整个目录的排版灾难一次清空5.1 批量替换的正确打开方式单文件替换只能处理一个文档但实际项目里麻烦的往往是“整个目录下的文档格式都不统一”。比如一批脚本文件都用了 Tab 缩进现在要统一改成 4 个空格或者一大堆 Markdown 文档里的日期格式需要统一调整。这种情况下不要一个个文件打开处理。在替换窗口把“查找范围”从“当前文件”切到“在文件中”然后在“目录”里选择要处理的文件夹。在“过滤器”里填写目标文件类型比如*.txt;*.log;*.md避免误伤无关文件。输入查找内容和替换内容同样可以切到正则模式。先点击“全部查找”底部结果面板会列出所有命中文件与行号。看到命中的数据符合预期后再点“全部替换”Notepad 会按你指定的过滤器逐一处理目录下的文件。这个功能本质上是“对多个文件执行查找替换”不是真正意义上的批处理脚本但已经能解决绝大多数批量排版需求。5.2 批处理前必须做的两个动作批量替换最怕两点替换范围过大、替换内容不对。因此我在实际工作中养成了两个习惯先点“全部查找”看底部输出面板里命中了多少条、分布在哪些文件。如果比预想多出十倍先停下来检查过滤器是不是把压缩包外的缓存文件也圈进来了。替换前快速备份。单文件替换还能撤销多文件替换一旦执行很多版本的 Notepad 很难逐文件撤销。最稳妥的办法是先把目录复制一份或者至少对将要修改的文件做一个整体打包备份。批量替换还有一个妙用做“排版一致性检查”。比如全角空格混入代码导致格式混乱可以用正则查找[\u3000]或者其他全角空白符号先在“在文件中”模式下全量查找定位所有问题文件再统一替换成半角空格。这样一来你处理的就不只是“内容”而是整个项目的排版卫生。6. JSON格式化与校验从官网到 JSON Viewer 的完整路径6.1 先把干净的工具链装好最近问“JSON Viewer 插件怎么下载”的人特别多第一反应都是去各种下载站找插件包。我建议直接走官网这条路打开 notepad-plus-plus.org 下载最新版 Notepad安装后菜单“插件 → 插件管理”里就能看到插件商店。操作步骤打开“插件”菜单选择“插件管理”或 Plugin Admin老版本叫 Plugin Manager。切到“Available”可用列表搜索JSON Viewer。勾选后点击安装等几秒重启 Notepad。如果插件列表里搜不到或者安装后没有反应先检查插件位数和 Notepad 版本是否匹配——64 位 Notepad 对应plugins64目录32 位对应plugins目录。手动安装的话把解压后的插件文件夹放进正确目录重启即可。6.2 JSON Viewer 不只是“格式化”这么简单很多人以为 JSON Viewer 只是把压缩成一行的大 JSON 展开成多行其实它还顺带做了两件重要的事校验 JSON 合法性、提供树形结构视图。用法很简单打开 JSON 片段全选点“插件 → JSON Viewer → Format JSON”。如果 JSON 本身写错了它会明确提示错误位置这比拿着压缩文本肉眼找逗号靠谱得多。格式化之后再点“插件 → JSON Viewer → Show JSON Tree”可以看到层级结构定位嵌套字段非常方便。万一插件没装成功也有应急方案对简单 JSON可以把},替换为},\r\n把{替换为{\r\n虽然得不到漂亮的嵌套缩进但至少能分行读。复杂嵌套照样建议先把插件装好手动分行治标不治本。处理 JSON 时还要注意编码。如果文件本身是带 BOM 的 UTF-8或源文件实际是 ANSI格式化后中文可能乱码。所以格式化之前先看右下角编码确保文件按正确的编码显示再执行格式化。7. XML/HTML 整理标签对齐这件事真不用靠手7.1 XML Tools现代版 Notepad 里最顺手的整理器网页复制下来的 HTML、接口返回的 XML经常整篇只有一行标签与属性全挤在一起。手动缩进这种活做一次你就再也不想做第二次。正确做法是交给插件。在插件管理里搜索XML Tools安装后菜单会多出一项。打开目标文档全选然后执行Plugins → XML Tools → Pretty print (XML only with line breaks)。几秒后原本挤在一起的标签会被重新排版父子层级清晰缩进阅读和修改的体验完全不同。XML Tools 也很适合处理配置文件、接口返回体这类结构性文本。需要注意格式化前确认文档是合法的 XML 或 HTML如果标签本身不闭合插件会提示错误而不是强行美化。7.2 没有插件时的临时分行方案如果暂时不方便装插件又必须处理一堆挤成一行的标签可以用正则做临时分行查找内容填替换内容填\r\n。这个操作会把每个标签结束符和下一个标签开始符之间强制换行效果上像是把一整串标签“拆开”。但要注意如果标签属性值里恰好出现了这种字符组合会被误切所以这种应急方案只适用于结构简单、没有特殊字符的文档。另外旧版本常见的 TextFX 插件里也有 HTML Tidy 功能但 TextFX 相对陈旧新项目我更推荐 XML Tools。处理 HTML 时Tidy 会对属性顺序和格式做一定调整如果你严格要求保持原始属性次序格式化完需要肉眼检查一遍。8. 宏录制把重复劳死人的排版动作一键打包8.1 为什么需要宏如果每天都要做同一套排版动作——去行尾空格、统一缩进、去掉多余空行、加分隔符——每次都手动重复一遍既浪费时间又容易漏步骤。宏的作用就是把这一整套动作录下来之后按一个键全部重放。录制流程打开一个临时文本按 CtrlHome 把光标移到文件最前面。菜单“宏 → 开始录制”。按顺序执行你要重复的排版操作包括查找替换、菜单点击、快捷键操作等。执行完毕后点“宏 → 停止录制”。保存宏给它起个名字可以顺手绑定一个平常用的快捷键。录制完成后打开任意文件按快捷键刚才记录的整套动作会自动执行一遍。8.2 宏录制的局限与批处理补充宏最坑的地方在于它记录的是操作序列不是文本内容。录制时如果光标停留在第 5 行回放时它也会从当前光标位置开始而不会自动跑到文件开头。所以录制前的“CtrlHome 回文件首”这一动作非常关键几乎决定了宏回放是否稳定。另一个局限是宏不会“读懂内容”。如果你的排版动作里有“如果这行以 ERROR 开头就怎么怎么样”这类条件判断普通的宏做不到需要配合正则替换来简化动作或者用 NppExec 插件跑脚本。需要重复执行多次时菜单“宏 → 多次运行”可以指定运行次数比如处理一个存在大量空行的文件时设 50 次删除空行操作基本能覆盖大部分情况。录好的宏会保存在%AppData%\Notepad\macros目录下文件是 XML 格式拷贝到另一台机器上就能复用团队之间共享排版规范时很实用。9. 排序与去重清单类文本的终极大扫除9.1 排序命令的正确打开方式面对 IP 列表、关键词列表、订单号列表最需要做的往往不是改格式而是排序。Notepad 的“编辑 → 行操作 → 排序升序”和“排序降序”可以直接对选中区域按行排序。操作时先全选或多选需要排序的行再执行排序命令。新版 Notepad 的排序对话框里通常有“过滤相邻重复行”的选项这个选项相当于在排序的同时把相邻重复行去掉。也就是说一次操作完成了“排序 去重”两件事。9.2 去重的先后顺序与中文排序问题如果只想去重不想排序需要先想清楚去重逻辑。Notepad 的“过滤相邻重复行”只删除相邻的重复行。如果相同的行分布在文件不同位置不经过排序它们不会相邻去重就会漏掉。正确的顺序是先排序让重复行聚到一起再去重如果你希望保持原始相对顺序那需要借助插件或脚本单纯靠菜单命令不好搞定。中文排序也有个容易误解的点Notepad 按 Unicode 编码顺序对中文排序不是按拼音。所以如果要对中文清单按拼音排列原生命令做不到要么用插件要么先把中文转成拼音或序号再排。英文和数字列表则不用担心排序结果通常符合直觉。排序前建议先看一眼行尾是否有隐藏的回车或空格。行尾如果有残留空格排序可能不会按你看到的内容排因为程序会先按那个空格字符排。先做一次 3 小节里的“删除行尾空格”正则替换再排序问题会少很多。10. 编码与 BOM 处理排版前的隐形雷区10.1 乱码排查链路文本排版做得再漂亮如果编码搞错了打开就是一堆乱码。最典型的情况是文件右下角显示 UTF-8但中文全是乱码。这通常说明文件实际内容不是 UTF-8而是 ANSI 或 GBK 编码。排查顺序很简单先看 Notepad 右下角状态栏确认当前文件以什么编码被解析。如果显示 UTF-8 但乱码试“编码 → 使用 ANSI 编码”。这个动作是把文件按 ANSI 编码重新解释一遍乱码大概率会恢复正常。内容显示正确后再“编码 → 转为 UTF-8 编码”把文件真正转换成 UTF-8。这一步转换之后文件本身不再是“披着 UTF-8 外衣的 ANSI”输入输出都统一了。处理 Excel 导出的 CSV、老系统导出的文本时这个链路几乎是必经之路。10.2 BOM 是最容易被忽略的隐形字符UTF-8 文件开头可能带着 BOM字节序标记表现为文件前几个字符的隐藏字节。大多数编辑器不显示 BOM但脚本运行时可能直接报“解析错误”或第一个变量名异常。解决方法是“编码 → 转为 UTF-8 编码无 BOM”。如果不想每次都手动处理可以在“设置 → 首选项 → 新建文档 → 编码”里把默认编码设为“UTF-8 无 BOM”新建的文件就不会再带 BOM 了。注意这个设置只影响新建文件对已经存在的文件要单独转换。10.3 转码不可逆的操作习惯编码转换属于破坏性操作脚本处理 100 个文件时尤其容易踩雷。我现在的习惯是转码前先把原始文件单独备份到另一个目录或者用“另存为”先保留一份原始编码副本。特别是字符集转换万一转到一半发现某个文件根本不是你以为的编码至少还能从备份里恢复。另外在“在文件中”批量替换时替换结果是否会乱码也跟文件编码有很大关系。批量处理前先在一个文件上验证替换后编码没有变化再扩展到整个目录能省掉不少返工时间。