DeleteBlankLines插件仅删除纯空行(仅含换行符),不处理含空格、Tab或Unicode空白的“伪空行”;其快捷键Ctrl+Alt+Backspace删所有纯空行,Ctrl+Alt+Shift+Backspace压缩连续空行,均无法识别隐形空白字符。

用 DeleteBlankLines 插件一键删空行,但得先确认它干了啥
DeleteBlankLines 插件确实能用快捷键删空行,但它默认只删“真正空”的行——即只含 \n 或 \r\n 的行,**不处理带空格、Tab、全角空格的“伪空行”**。你按 Ctrl+Alt+Backspace(Windows/Linux)或 Ctrl+Alt+Delete(macOS)后发现有些“看着空”的行还在,不是插件坏了,是它压根没匹配到。
它有两个模式:
- Ctrl+Alt+Backspace:删所有空行(但漏掉伪空行)
- Ctrl+Alt+Shift+Backspace:把 ≥2 个连续空行压缩成 1 个(同样不碰伪空行)
所以别指望它替代正则。它适合清理日志、纯文本等已知无空白字符的场景;代码文件、网页粘贴内容、Excel 导出数据,它大概率漏删。
装插件前先看 Package Control 是否正常
很多人卡在“搜不到 DeleteBlankLines”,其实是 Package Control 没就位:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package—— 如果命令不存在,说明 Package Control 没装,得先手动安装(官网下载 Python 脚本,粘贴进 Sublime 控制台执行) - 装完重启 Sublime,再试
Ctrl+Shift+P → Install Package,等几秒等列表加载完成,再输DeleteBlankLines - 如果仍搜不到,检查网络或换镜像源(Preferences → Package Settings → Package Control → Settings – User,加
"channels"数组)
删“伪空行”必须用正则,插件帮不上忙
从网页、微信、Excel 粘过来的空行,常藏 \u200b(零宽空格)、\u3000(全角空格)、\u00a0(不间断空格),DeleteBlankLines 完全无视这些。这时唯一靠谱的是原生正则:
打开 Ctrl+H,确认右下角 .* 已点亮、. matches newline **未勾选**,然后:
- 查找框填:
^[ \t\r\n\u200b\u3000\u00a0]*$(覆盖常见隐形空白) - 替换框彻底留空(填
\n或空格会多塞字符) - 点
Replace All前先点Find All看匹配数,超 5000 行建议分段操作
注意:\s 在 Sublime 里不包含 \u200b 等 Unicode 空白,硬写 ^\s*$ 会漏——这是最常被忽略的兼容性坑。
删完还得手动收尾,尤其文件末尾
无论插件还是正则,对“文件末尾无换行符 + 空行”都无力:Sublime 内部不把 EOF 前的空行当完整行处理,^\s*$ 匹配不到,DeleteBlankLines 也跳过。
补救方法只有两个:
- 光标移到最后一行开头,按
Ctrl+Shift+K(Win/Linux)或Cmd+Shift+K(macOS)——这个快捷键删整行并自动补换行符,安全 - 或者手动在末尾加一行,保存后再删,避免用
Delete或Backspace,它们只删字符,极易留下隐形空格
真正麻烦的从来不是怎么删,而是删完你以为干净了,结果 Git 提交时 diff 显示一堆 ^M,或者 Python 解析 YAML 报缩进错——那些地方必须人眼扫一遍,工具做不到。


















