用正则 ^[ \t]+ 可一次性删除所有行首空格和制表符:打开Ctrl+H,启用正则模式,查找框输入该表达式,替换留空后点击Replace All。

用正则表达式一次性删掉所有行首空格和制表符
Sublime Text 自带的「查找替换」支持正则,这是最直接、最可控的方式。打开 Ctrl+H(Windows/Linux)或 Cmd+H(macOS),勾选右下角的 .*(正则模式),在「查找」框输入:^[ \t]+,「替换」留空,然后点 Replace All。
说明:^ 锚定行首,[ \t]+ 匹配一个或多个空格或制表符。注意别漏掉方括号里的空格字符——它和 \t 是并列关系,不是占位符。
- 如果只想删空格(不碰制表符),用
^ +(注意末尾有个空格) - 如果文件用了混合缩进(比如空格+Tab混用),
^[ \t]+依然有效,但要小心是否误删了本该保留的缩进结构 - 执行前建议先点
Find All看匹配了多少处,避免误操作
用命令面板快速触发「Trim Whitespace」
Sublime Text 内置了 trim_trailing_whitespace 命令,但它默认只删行尾空白。要删行首,得靠插件或手动改配置——但有个更省事的办法:用 Ctrl+Shift+P 打开命令面板,输入 Indentation: Convert to Spaces 或 Indentation: Reindent,它们会在重排缩进时顺带清理行首空白,不过效果不纯粹,仅适合代码文件且缩进规则统一的场景。
-
Reindent会按当前语法的缩进规则重排整段,可能改变原有缩进层级,慎用于非代码文本 - 它不处理注释行或空行开头的空白,也不保证每行都对齐,只是“尽力而为”
- 如果只是临时清理,比写正则快;如果追求精确控制,还是回到正则方案
保存时自动清理行首空白(需要改设置)
Sublime Text 默认不提供「保存时删行首空白」的开关,但可以通过修改用户设置间接实现:在 Preferences → Settings – User 中添加:
"trim_automatic_white_space": true,这个选项实际只影响行尾,不是行首。真正能干预行首的,是配合插件如
Trimmer 或自定义键绑定,但稳定性差、维护成本高。不推荐为单次需求装插件。
- 原生设置里没有
trim_leading_whitespace这类选项,搜到的很多教程是过时或混淆了其他编辑器的配置 - 如果高频使用,建议把
^[ \t]+存成 snippet 或记在快捷命令里,比折腾自动保存更可靠 - 注意不同文件类型(如 Markdown、JSON)对空白敏感度不同,批量删前最好确认上下文
遇到中文全角空格或特殊 Unicode 空白怎么办
标准正则 ^[ \t]+ 不匹配全角空格( )、不间断空格( )或零宽空格(\u200b)。如果文档是从网页复制过来的,很可能混入这些字符。此时查找字段换成:^[ \t\u3000\u00a0\u2000-\u200b\u2028\u2029]+。
-
\u3000是中文全角空格,\u00a0是不间断空格,\u2000-\u200b覆盖大部分 Unicode 空白字符 - 这个正则稍重,可能误匹配某些合法符号(比如某些排版用的窄空格),建议先
Find All预览 - Sublime Text 的正则引擎不支持
\p{Zs}这类 Unicode 类别,所以必须显式列出常用码点范围


















