Sublime Text 原生支持保存时自动删行尾空格,只需在用户设置中添加 "trim_trailing_white_space_on_save": true 和 "trim_automatic_white_space": true 两行 JSON 配置;注意格式必须合法,否则失效。

保存时自动删行尾空格:改两个配置项就生效
Sublime Text 原生支持保存时自动清理行尾空格,不用装插件,只要在用户设置里加两行 JSON 就行。关键是别写错格式——JSON 必须用双引号,末尾不能多逗号,否则整个设置会失效。
-
"trim_trailing_white_space_on_save": true:保存文件时,自动删掉每行末尾的空格和制表符(\t) -
"trim_automatic_white_space": true:编辑过程中光标移出某行时,立刻清理该行尾部多余空白(比如你敲完回车又手抖按了空格)
打开 Preferences → Settings,右侧用户设置面板里直接粘贴(确保是合法 JSON 对象):
{
"trim_trailing_white_space_on_save": true,
"trim_automatic_white_space": true
}改完保存,马上就能测:随便打开一个文件,在某行末尾敲几个空格,按 Ctrl+S,空格就没了。注意:这个不会动缩进用的空格或 Tab,只清“没意义”的行尾残留。
手动批量删空格:正则替换最稳,但得开「正则模式」
有时候你想一次性扫掉整个文件里的行尾空格(比如接手别人代码、处理日志),或者上面自动设置没起作用想验证是否真有空格——这时候用 Ctrl+H 打开替换面板最直接。
- 查找框填:
\s+$(\s匹配空格/Tab/换行符,+表示至少一个,$锁定行尾) - 替换框留空
- 务必点击右下角
.*按钮启用正则模式,否则\s当普通字符处理,啥也匹配不到
点 Replace All,所有行尾多余空白一并清除。这个操作不依赖设置,适合临时救急或检查结果。
删空行:用 ^\s*$ 正则,但小心误删注释行
“多余空格”常和“多余空行”混在一起说。删空行不能靠上面那两个配置项,得另走一步。最可靠的方式仍是正则替换,但要注意边界情况。
- 查找:
^\s*$(^行首,\s*零个或多个空白,$行尾) - 替换框留空,启用正则后点 Replace All
- ⚠️ 风险点:如果某行只有注释(如
# TODO后面跟一堆空格),^\s*$不会匹配它;但如果你写了# TODO(带空格),它会被当成“空行”误删——因为 Sublime 把整行当空白处理了
所以删空行前建议先人工扫一眼,或用 TrailingSpaces 插件先高亮显示行尾空格,避免误操作。
插件方案:TrailingSpaces 更灵活,但多一层维护成本
如果你需要更精细控制(比如只删修改过的行、保留某些文件类型不清理),原生配置就不够用了。这时推荐装 TrailingSpaces 插件:
- 安装后默认会高亮所有行尾空格,肉眼可见
- 在 Preferences → Package Settings → TrailingSpaces → Settings 里加这两行:
{
"trailing_spaces_trim_on_save": true,
"trailing_spaces_modified_lines_only": false
}这样保存时不仅删空格,还支持排除特定语法(如 Markdown、.env 文件),比原生配置更可控。但代价是:每次升级 Sublime 或插件,都得确认兼容性——尤其在 2025 年底新版中,部分旧插件已停止维护。
真正容易被忽略的是:空格清理逻辑和文件编码、换行符(\n vs \r\n)无关,但如果你用 Git,行尾空格被删后可能触发大量 diff 变更。建议团队统一开启 trim_trailing_white_space_on_save,避免一人提交、全员 review 空格变更。










