优先用菜单“编辑→行操作→移除空白行”,它不依赖正则、兼容性强;若该选项缺失,再用正则^\s*$全选后替换为空,因$确保匹配纯空行或仅含空白符的整行。

Notepad++ 删除空行最稳的两种方式
直接说结论:优先用菜单内置功能 编辑 → 行操作 → 移除空白行(包括空白字符),它不依赖正则、不挑编码、不误删换行符,适合绝大多数 TXT/LOG/代码文件。如果这个选项没出现,说明你用的是极简版或插件被禁用,这时候再切到正则方案。
为什么 ^\s*$ 比 ^\s+ 更可靠
网上常见写法是 ^\s+(匹配行首空白),但它只删“开头有空格/制表符”的行,漏掉纯空行(\r\n 或 \n 单独成行);而 ^\s*$ 中的 $ 确保整行只有空白或完全为空,才触发删除。实操时必须:
- 先全选(
Ctrl+A),否则只处理当前光标以下 - 勾选「正则表达式」模式(不是「扩展」)
- 查找框填
^\s*$,替换框留空 - 点「全部替换」,别点「替换」——后者一次只动一行,容易漏
TextFX 插件现在基本不用了
旧教程总提 TextFX 的 Delete blank lines,但 Notepad++ 7.9+ 已把等效功能内置进菜单,且 TextFX 在 Unicode 文件里常乱码、在 UTF-8-BOM 文件中可能吞掉 BOM 头。除非你卡在 6.x 老版本,否则别折腾下载安装插件。真要验证是否生效,删完后打开「视图 → 显示符号 → 显示所有字符」,看空行是否真的消失,而不是变成带 ¶ 的隐形占位行。
删空行后发现格式错乱?检查换行符类型
Windows(\r\n)、Linux(\n)、macOS(\r)换行符不同,Notepad++ 默认按当前文件类型识别。如果删完空行后段落粘连或跳行异常,点状态栏右下角看显示的是 DOS / UNIX / MAC,再通过 编辑 → 文档格式转换 统一为当前系统常用格式。这步不解决空行问题,但能避免后续复制到终端、Git 提交或 Python readlines() 时出诡异换行错误。










