优先使用「移除空白行(包括空白字符)」功能,它能清理含空格、制表符、BOM及Unicode不可见字符的伪空行;菜单未显示则因版本极简或插件禁用,应查Shortcut Mapper确认全名或改用正则^\s*$\r?\n。

优先点「编辑 → 行操作 → 移除空白行(包括空白字符)」,95% 场景直接生效;菜单里没看到这个选项,说明你用的是极简版或插件被禁用了,别折腾 TextFX,切正则方案。
为什么「移除空白行(包括空白字符)」比「移除空行」更常用
多数人想删的“空行”,其实是视觉上为空、但含空格、\t、BOM 后空白甚至 Unicode 不可见字符(如 \u00A0)的行。「移除空行」只删纯 \r\n 或 \n 的行,漏掉这些“伪空行”。而「移除空白行(包括空白字符)」是 Notepad++ 7.9+ 内置功能,不依赖正则,能正确识别并清理整行仅含空白符的内容,且不误吞换行符本身。
注意:新版界面常把完整名称折叠显示为「移除空白行」,务必鼠标悬停确认文字是否带括号,或进 Settings → Shortcut Mapper → Main menu 查看绑定项全名。
正则替换必须写对的三个关键点
当菜单项不可用时,才用正则。但网上流传的 ^\s+ 或 ^\s*\n 都有硬伤:
-
^\s+只匹配行首有空白的行,漏掉纯\r\n的空行 -
^\s*\n在 Windows 换行文件里会漏掉\r,残留\r字符导致后续解析异常 - 正确写法是:
^\s*$\r?\n——$锚定行尾,\r?\n显式捕获换行,确保真删除整行
操作前务必:Ctrl + F 输入 ^\s*$(同样勾选「正则表达式」),点「全部高亮显示」预览命中行,这是唯一可靠的防误删手段。
删完空行后格式错乱?先看状态栏换行符类型
Notepad++ 默认按当前文件类型识别换行符,但删空行本身不改变换行符类型。如果删完后段落粘连、跳行异常,或复制到终端/Python 中出问题,点状态栏右下角看显示的是 DOS / UNIX / MAC,再通过 编辑 → 文档格式转换 统一为当前系统常用格式。
这步不解决空行问题,但能避免后续 Git 提交、脚本读取时因混用换行符引发的诡异错误——尤其在跨平台协作中,这个细节最容易被忽略。

















