Sublime Text 删除空行最可靠方法是正则替换 ^\s\*$,不留空格、不伤缩进;需启用正则模式,查找框填该表达式,替换框留空,按 Replace All 即可。

直接删空行:用 ^\s*$ 最快最稳
Sublime Text 删除所有空行,最可靠、零依赖的方法就是正则替换——不用装插件,不改设置,按三下键就能清完。^\s*$ 这个表达式精准匹配“整行只有空白字符(空格、Tab)或完全为空”的行,不会误伤带缩进的代码行,也不会漏掉隐藏空格的“伪空行”。
- 快捷键打开替换面板:
Ctrl + H(Windows/Linux)或Cmd + H(Mac) - 点右下角
.*图标启用正则模式(没点亮就白输) - “查找”框填:
^\s*$ - “替换”框留空(不是填空格,是真·什么也不写)
- 点
Replace All,立刻生效
想留段落空行?别全删,先压缩连续空行
直接删光所有空行后,文档可能变成密不透风的一整块,尤其 Markdown 或配置文件里,段落间需要一个空行分隔。这时候不该用 ^\s*$,而该匹配“两个及以上换行符”,把它们压成一个。
- 查找内容填:
\n{2,}(注意:必须开启正则,且.不匹配换行符时也有效) - 替换为:
\n\n(两个换行符,即保留一个空行) - 点
Replace All一次;如果还有三连空行,再点一次,直到无变化为止 - ⚠️ 注意:
\n{2,}在 Windows 换行符(\r\n)下可能不完整匹配,稳妥起见可先统一换行符:菜单 →File → Line Endings → Unix (LF)
删空行前,先确认有没有“隐形空格”干扰
有些空行看着空,其实末尾有空格或 Tab,^\s*$ 能抓到,但如果你手动检查时没发现,会误以为“怎么删不干净”。更麻烦的是,这些残留空格可能在保存后被自动 trim(如果开了 trim_automatic_white_space),导致你反复操作却结果不一致。
- 临时高亮所有行尾空格:用
Ctrl + H,查找\s+$(记得开正则),点击Find All看哪些行被选中 - 一键清理行尾空格(不删整行):
Preferences → Settings用户设置里加:{ "trim_automatic_white_space": true } - 或者用替换法:查找
\s+$,替换为空,同样需开正则
多文件批量处理:用 Ctrl + Shift + F 全局替换
项目里几十个 JSON、YAML 或日志文件都塞满空行?一个个开太慢。Sublime 的全局搜索替换能一次扫整个文件夹,但风险更高,务必预览再动手。
- 按
Ctrl + Shift + F打开“Find in Files”面板 - “Where” 填目标路径,比如
./src/**/*.js(支持 glob 通配) - “Find” 填
^\s*$,“Replace” 留空,勾选Regular Expression - 先点
Find,左侧会列出所有匹配位置——逐个点开确认是否真该删 - 确认无误后,再点
Replace All in Files;替换后 Sublime 会提示修改了几个文件,但不会自动保存,要手动Ctrl + S保存全部
真正容易被忽略的,是那些“看起来像空行但实际含不可见字符”的情况,比如 U+200B 零宽空格、BOM 头后的换行,或者混合了 \r\n 和 \n 的文件。遇到删不净,先用“显示所有字符”(View → Characters → Show All Characters)看看真相。










