直接结论:用 Ctrl+H(Windows/Linux)或 Cmd+H(macOS)打开替换面板,开启正则模式,查找 ^\s*$\n,替换为空,即可安全删除纯空行(含仅空白符的行),避免误删或遗漏。

Sublime Text 里空行到底怎么删才不误伤
直接结论:用 Ctrl+H(Windows/Linux)或 Cmd+H(macOS)打开「替换」面板,正则模式开起,查找 ^\s*$\n,替换为空,就能安全清掉纯空行(含只有空格、制表符的行)。别用 ^\n —— 它会漏掉带空白符的“伪空行”,也容易在文件末尾多删一行。
为什么 ^\s*$\n 是最稳的正则写法
这个表达式逐段解释:^ 匹配行首,\s* 匹配零个或多个空白字符(空格、Tab、换行符等),$ 匹配行尾,\n 明确匹配换行符本身。关键点在于:
-
\s*覆盖了“看似空、实则有空格或 Tab”的行,这类行肉眼难辨但常导致格式错乱 -
\n写在结尾,确保只删整行(含换行符),不会把下一行开头吃掉 - 不加
g标志也没关系——Sublime 的「全部替换」默认全局生效 - 如果文件是
\r\n换行(Windows 风格),\n依然能匹配,因为 Sublime 内部做了换行符归一化
快捷键组合与操作细节
真正提速靠的是三步闭环,不是单按一个键:
- 先按
Ctrl+H呼出替换面板 - 点右下角「.*」按钮启用正则模式(没点它,
^$会失效) - 在「Find What」输
^\s*$\n,「Replace With」留空,再按Alt+Enter(Windows/Linux)或Cmd+Alt+Enter(macOS)执行全部替换 - 如果只想删选中区域的空行:先选中文本,再按
Ctrl+H→ 开正则 → 输入表达式 → 点「In Selection」复选框 → 替换
容易被忽略的边界情况
删空行不是无脑操作,这几个点实际用时总被卡住:
- 文件末尾连续多个空行:
^\s*$\n只删到倒数第二个换行符,最后一个空行会保留——这是 Sublime 行为,不是正则问题;如需彻底清空末尾空行,得额外跑一次\n\s*$(注意这次\n在前) - JSON 或 HTML 等对换行敏感的格式:删空行可能让压缩版 diff 变大,建议仅在开发阶段清理,提交前确认不影响可读性或工具解析
- 正则里写
^$看似简洁,但它在 Sublime 中不匹配含空格的行,也不匹配文件末尾的空行——实测过,别信网上简略教程
真正麻烦的从来不是怎么删,而是删完发现某段配置因空行缺失被合并成一行,或者 Git 报告整块重排——动手前先 Ctrl+Z 备个份,比啥都强。

















