sublime text 原生支持保存时自动删除行尾空格,只需在用户设置中添加 "trim_trailing_white_space_on_save": true 即可;该配置不影响行首空格和空行,且仅在保存时触发。

Sublime Text 保存时自动删除行尾空格怎么配?
直接说结论:Sublime Text 原生支持,不用装插件,靠 trim_trailing_white_space_on_save 这个配置项就能搞定。它默认是关的,开起来就行。
如何开启自动清除行尾空格?
打开 Sublime Text 的设置(Preferences → Settings),在右侧用户设置(User Settings)里加这一行:
{
"trim_trailing_white_space_on_save": true
}
保存后,下次保存任何文件都会自动删掉每行末尾的空格和制表符。注意:只影响「保存动作」,编辑过程中不会实时清理,也不会动行首空格或空行。
为什么改了没生效?常见踩坑点
容易忽略但实际高频的问题:
-
Preferences → Settings打开的是双栏界面,务必把配置写在右侧「User」栏,而不是左侧「Default」栏(改 Default 会被升级覆盖) - 如果同时启用了
save_on_focus_lost,那窗口失焦也会触发保存 → 也就顺带清空格,但这个行为不是所有人都预期的,建议单独控制 - 某些项目级配置(如
.sublime-project)或插件(如 EditorConfig)可能覆盖全局设置,可临时禁用插件验证是否冲突 - Git 提交前看到空格还在?那是 Git 显示的“之前版本里的空格”,保存后新提交就没了——别被 diff 欺骗
要不要连空行也一起删?
这个配置不处理空行。如果真需要删掉文件末尾的多余空行,得额外加一项:
{
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true
}
ensure_newline_at_eof_on_save 的作用是保证文件末尾有且仅有一个换行符,顺带会把末尾多个空行压成一个。但它不会删中间的空行,也不影响非末尾位置的空行。
真正要激进清理所有空行,就得用正则替换或插件,不属于这个配置范畴。别为了省事开一堆副作用开关,多数协作场景里,只清行尾空格 + 保 EOF 换行,已经够用。











