sublime text删空行最稳方式是用正则^s*$替换为空,它匹配纯空白行;若只删真正空行用^\r?\n;合并多个空行为一个用(^\s*$ ){2,}→ 。

用正则替换一次性干掉所有空行
Sublime Text 里删空行最稳的方式不是手动按 Delete,而是用 Find → Replace 配合正则。空行本质是「只有换行符、没有可见字符」的行,对应正则 ^s*$(^ 行首,s* 零个或多个空白,$ 行尾)。
操作步骤:
- 打开
Ctrl+H(Windows/Linux)或Cmd+H(macOS) - 勾选
.*按钮启用正则模式 - 查找框填
^s*$ - 替换框留空
- 点
Replace All
注意:^s*$ 会匹配纯空格/制表符的“伪空行”,如果只想删真正什么都没有的行(不含空格),改用 ^
?
(Windows/macOS/Linux 兼容写法),但得先确保文件编码是 UTF-8 且换行符统一。
为什么不能只用 ^
?
直接写 ^
看似简单,但在 Sublime 中几乎没用——因为
是换行符本身,而 ^ 匹配的是行首位置,不是字符;^
实际匹配的是「以换行符开头的行」,这在文本中根本不存在(换行符总在行尾)。常见错误现象是:点了 Replace All 却一无所获,或者误删了不该动的行首内容。
真正要匹配「空行」,必须让正则能覆盖整行,所以必须用 ^...$ 包裹,中间允许空白(s*)。
另外,Sublime 的正则引擎默认不跨行匹配,所以 ^s*$ 安全,不会意外吞掉带内容的行。
保留一个空行分隔段落怎么办?
纯删空行容易把原本用空行分隔的段落挤成一团。如果想「合并连续多个空行,只留一个」,得用更精准的替换:
- 查找:
(^s*$ ){2,}(两个及以上连续空行) - 替换:
(只留一个换行) - 记得开启正则和
Wrap around
这个写法依赖 Sublime 对
在替换中的行为:它会把匹配到的多行替换成单个换行符。注意别写成
,否则在 macOS/Linux 上可能出错——Sublime 替换时自动适配当前文件的换行符类型。
批量处理多个文件时要注意编码和换行符混用
用 Find in Files 批量删空行时,如果项目里混着
(Windows)、
(Unix)、
(旧 Mac)三种换行符,^s*$ 仍能工作,但结果可能不一致:比如某文件末尾有
没被识别为「空白」,导致最后一行删不干净。
建议提前统一:
- 用
File → Save with Encoding → UTF-8确保编码 - 用
View → Line Endings → Unix (LF)统一换行符 - 再执行正则替换
否则看似删完了,实际某些空行残留着不可见的
,后续 Git 提交或脚本处理时容易暴露问题。










