最稳方案是菜单「编辑 → 行操作 → 移除空白行(包括空白字符)」,它不依赖正则、兼容BOM与Unicode空白、适配UTF-8/GBK/ANSI编码,7.9+版本开箱即用,可清除纯空行、含空格制表符的伪空行及BOM后换行首行。

直接用菜单命令比记快捷键更可靠
Notepad++ 没有默认绑定「一键清除所有空行」的全局快捷键,硬记 Ctrl+X/Ctrl+Y 类组合反而容易混淆。真正高效的做法是:用鼠标点「编辑 → 行操作 → 移除空白行(包括空白字符)」——它不依赖正则、不吃 BOM、兼容 UTF-8/GBK/ANSI,7.9+ 版本开箱即用。
这个菜单项能删掉三类“看似空”的行:纯\r\n或\n的空行、含空格或\t的伪空行、UTF-8 with BOM 文件中 BOM 后紧跟换行的首行。而老教程常提的「移除空行」只处理第一种,漏掉后两者是高频误操作根源。
如果右下角状态栏显示「只读」,该命令会静默失败,不报错也不提示——务必先确认文件可写。
想自定义快捷键?得改 Shortcut Mapper
Notepad++ 允许给「移除空白行(包括空白字符)」绑定快捷键,但必须手动配置:
- 打开
设置 → 快捷键映射 → 主菜单 - 在列表里滚动找到
移除空白行(包括空白字符)(注意括号和全称,别选成「移除空行」) - 双击右侧空白列,按你想设的组合键(如
Ctrl+Shift+K),点「确定」保存
⚠️ 注意:Ctrl+Shift+K 在部分插件(如 NppExec)中已被占用,冲突时会优先执行插件命令;建议先在「快捷键映射」顶部搜索该组合,确认未被占用再绑定。
为什么别用 Ctrl+H 写正则当“快捷键”
有人把 Ctrl+H → ^\s*$\r?\n → 全部替换 当快捷流程,但这不是快捷,是埋雷:
-
^\s*$\r?\n必须严格勾选「正则表达式」,若误选「扩展」或「普通」模式,整条正则失效,可能删掉大段内容 - 替换前不预览(
Ctrl+F → ^\s*$ → 全部高亮显示),就点「全部替换」,大文件下Ctrl+Z可能无法逐层撤回 - 远程 FTP 编辑时网络卡顿,「全部替换」可能中途挂起,状态丢失且无提示
真要走正则路径,也应把它存为「宏」而非手敲——但宏本身不能跨文件自动触发,仍需人工点一次「运行宏」。
批量处理多个文件时,快捷键没用,得靠宏+文件浏览器
单个文件点菜单或快捷键还行,但面对 20 个 .log 或 .conf 文件,快捷键毫无意义。正确做法是:
- 先打开一个样本文件 → 执行一次「移除空白行(包括空白字符)」
-
Ctrl+Shift+R开始录制 → 再执行一次同操作 →Ctrl+Shift+R停止 - 按
F8打开文件浏览器 → 进入目标文件夹 → 全选 → 右键「在 Notepad++ 中打开」 - 所有文件载入后,按
Ctrl+Shift+P回放宏
宏回放时,若某文件是只读或被其他程序占用,它会自动跳过,继续处理下一个——这才是批量场景下真正“一键”的逻辑。真正难的从来不是按键动作,而是判断哪些文件该进宏、哪些要先解只读、哪些编码需提前转为 UTF-8 without BOM。


















