直接在用户设置右侧面板添加"trim_trailing_white_space_on_save": true即可生效,需确保json格式正确、位置准确(user面板)、无高优先级配置覆盖,且避免与trailingspaces等插件冲突。

直接在用户设置里加 "trim_trailing_white_space_on_save": true 就能生效,不需要插件、不改源码、不写正则——但写错位置或格式,它就完全静默失效。
怎么写才真正生效
关键不是“开不开”,而是“写在哪、怎么写”。Sublime 只读右侧 User 面板的 JSON,左侧 Default 是只读模板,改了也白改。
- 打开 Preferences → Settings,只动右边(User)面板
- 确保整个内容是合法 JSON:用英文双引号,
"trim_trailing_white_space_on_save": true必须包在{}里 - 如果已有其他配置项,这行末尾要加英文逗号;但整段结尾不能有多余逗号
- 保存设置文件(
Ctrl+S),不用重启,立刻可用
为什么保存了空格还在
不是功能坏了,而是被更高优先级规则盖掉了。最常见干扰源有三个:
- 右下角显示
Plain Text—— Sublime 默认不对此类视图触发清理,临时切换成Python或JSON测试一下 - 项目根目录存在
.sublime-project,且里面写了"trim_trailing_white_space_on_save": false,它会直接压倒用户设置 - 装了
TrailingSpaces插件又没关它的自动清理,两个逻辑打架,导致光标乱跳或界面闪一下
想手动清一次老文件怎么办
别用正则瞎试,容易误删缩进或 YAML 块结构。Sublime 自带命令更稳:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入
Trim Trailing White Space,回车执行 - 它只删每行末尾的空格和
\t,不碰空行、不改缩进、不动行中空格 - 注意:命令不会自动保存文件,执行后可先看 diff 再决定是否
Ctrl+S
要不要配 draw_white_space 和 ensure_newline_at_eof_on_save
它们和行尾空格清理无关,但配合使用能减少“以为删了其实没删”的错觉:
-
"draw_white_space": "all"让空格显示为点、Tab 显示为箭头,肉眼确认删得干不干净 -
"ensure_newline_at_eof_on_save": true确保文件以单个换行符结尾,但它不删中间或末尾的连续空行——那是另一回事 - 这两项和
trim_trailing_white_space_on_save放一起没问题,但别指望它们帮你解决空行问题
真正麻烦的是 Markdown、Makefile 这类依赖行尾空格的格式,原生设置无法按语法开关,必须靠插件或项目级 .editorconfig 控制——这点最容易被忽略,等提交后 Git diff 里全是空格变更才反应过来。











