Sublime Text 一键删除所有空白行需用正则替换:打开替换面板(Ctrl+H/Cmd+H),勾选正则模式,查找框填 ^\s*$$\\n,替换框留空,全选后点击 Replace All;其中 ^\\s*$$\n 匹配含空格、Tab 等的整行及换行符,确保彻底删除而非残留空行。

Sublime Text 里一键删除所有空白行,本质是用正则替换实现的,不是靠某个快捷键——Ctrl+H(Windows/Linux)或 Cmd+H(macOS)打开替换面板后,开启正则模式就能搞定。
怎么用正则匹配并删除纯空白行
空白行指只包含换行符、空格、制表符的行(即视觉上“空”的行)。正则需匹配整行内容,且不能误删带空格但非空的行。
- 在替换面板中勾选
.*(正则模式)按钮 - 查找框填:
^\s*$\n - 替换框留空
- 点击
Replace All
^\s*$\n 含义:^ 行首,\s* 零个或多个空白字符(空格、Tab、换行符等),$ 行尾,\n 显式匹配换行符(确保整行被删,不残留空行)。
为什么不用 ^\s*$ 单独匹配
如果只用 ^\s*$ 替换为空,Sublime 会把每行末尾的换行符保留下来,结果变成一堆“看不见但占位”的空行,实际并未删除。
-
^\s*$匹配成功但不消耗\n,替换后原位置仍留一个换行符 -
^\s*$\n把换行符也纳入匹配范围,替换后该行彻底消失 - 若文件结尾有空白行,
\n可能不存在,此时可补用^\s*$(\r\n|\n|\r)?更严谨(但日常够用)
批量清理混合空白字符(空格、Tab、全角空格)
中文文档或粘贴内容常含全角空格( )、不间断空格( ,HTML 中为 )等,\s 默认不匹配它们。
- 如需一并清理,查找框改用:
^[ \t\u00a0\u3000]*$\n -
\u00a0是不间断空格,\u3000是中文全角空格 - 注意:Sublime 的正则引擎(PCRE)支持 Unicode 转义,但不支持
\p{Zs}这类 Unicode 属性 - 若要保留缩进(比如代码中的空行仅用于分隔),别盲目全删,先
Find All确认范围
^\s*$\n
真正容易被忽略的是:替换前务必确认光标没在某一行中间——Sublime 的正则替换默认作用于全文,但如果当前有选区,它只会替换选区内匹配项。删空白行这种操作,99% 需要全文生效,所以动手前按 Ctrl+A 全选更稳妥。










