“移除空白行(包括空白字符)”比“移除空行”更管用,因它能识别并删除含空格、制表符、bom或unicode不可见字符的伪空行,而后者仅删纯换行符行。

直接用 编辑 → 行操作 → 移除空白行(包括空白字符),95% 的代码文件空行问题当场解决;菜单不出现,说明你用的是极简版或插件被禁用,别折腾 TextFX,切正则方案。
为什么「移除空白行(包括空白字符)」比「移除空行」更管用
多数人想删的“空行”,其实是视觉为空、但含空格、\t、BOM 或 Unicode 不可见字符(如 \u00A0)的伪空行。移除空行 只删纯 \r\n 或 \n 的行,漏掉这些;而 移除空白行(包括空白字符) 是 Notepad++ 7.9+ 内置功能,不依赖正则,能识别整行仅含空白符的内容,且不误吞换行符本身。
注意:新版界面常把全名折叠为「移除空白行」,务必鼠标悬停确认是否带括号,或进 Settings → Shortcut Mapper → Main menu 查绑定项全名。
正则替换必须写对:^\s*$\r?\n
当菜单不可用,或你需要保留首尾空行、只压平连续空行等精细控制时,才上正则。但网上流传的 ^\s+ 或 ^\s*\n 都有硬伤:
-
^\s+只匹配行首有空白的行,漏掉纯\r\n或\n的空行 -
^\s*\n缺少$锚定,可能误匹配非空行末尾的空白 - 正确写法是
^\s*$\r?\n:用^和$锁定整行,\r?\n显式捕获并删除换行符,兼容 Windows 和 Unix 换行
实操时:Ctrl + H → 勾选「正则表达式」→ 「查找目标」填 ^\s*$\r?\n → 「替换为」留空 → 点「全部替换」。
⚠️ 千万别选「扩展模式」——它不支持 ^、$ 和 \s;也别加 g 或 m 标志,Notepad++ 正则引擎不认,会报错或无响应。
删完空行后格式错乱?先看状态栏换行符类型
「移除空白行」和正则替换都不改变换行符类型。如果删完后段落粘连、跳行异常,或复制到终端/Python 中出问题,点状态栏右下角看显示的是 DOS/UNIX/MAC,再通过 编辑 → 文档格式转换 统一为当前系统常用格式。
这步不解决空行问题,但能避免后续 Git 提交、脚本读取时因混用换行符引发的诡异错误——尤其在跨平台协作中,这个细节最容易被忽略。
删之前必须预览,否则容易误删
正则替换是全局不可逆操作,大文件下 Ctrl + Z 可能无法逐层撤回。安全做法分两步:
- 先按
Ctrl + F,输入^\s*$(同样勾选正则),点「全部高亮显示」——被标黄的才是将被删的行,肉眼确认无误再动手 - 重要文件务必先
Ctrl + A → Ctrl + C粘贴到新标签页备用;别在未保存的 FTP 连接中直接操作,网络卡顿可能导致「全部替换」中途失效且无提示
另外,删完建议打开 视图 → 显示符号 → 显示所有字符,确认没有残留 ¶ 或 · 占位符——有些 Unicode 零宽空格(如 \u200B)不会被 \s 匹配,得靠这个开关揪出来。











