靠 trim_trailing_white_space_on_save 配置项设为 true 即可,它是 sublime 原生功能;需写在 preferences → settings – user 中,且必须为布尔值 true,json 格式合法,仅保存时触发、只删行尾空白。

Sublime Text 保存时自动删除行尾空格怎么配
直接给结论:靠 trim_trailing_white_space_on_save 这个配置项,设为 true 就行。它不是插件,是 Sublime 原生功能,开箱即用,但默认关闭。
为什么改了设置没生效?常见配置位置和陷阱
这个选项必须写在用户配置文件里,不能只改默认配置(改了也会被覆盖)。而且它对当前视图(view)生效,不是全局开关——比如你开了两个窗口,一个改了,另一个没改,效果就不同。
- 打开配置路径:
Preferences → Settings – User - 确保 JSON 格式合法:加逗号、引号、括号匹配;如果已有其他配置,
trim_trailing_white_space_on_save要放在最外层对象里,和其他键同级 - 别写成
"trim_trailing_white_space_on_save": "true"—— 字符串不行,必须是布尔值true - 如果同时启用了
ensure_newline_at_eof_on_save,它会在删完空格后补换行,顺序上它后执行,但两者互不干扰
哪些场景下它不会删空格?得手动干预
这个功能只在「保存时」触发,且只处理「当前文件的可编辑区域」。它不关心语法、不分析上下文,纯粹按行扫描末尾空白字符(\s,包括空格、制表符、全角空格等)。
- 文件被标记为只读(比如权限受限或 Git 暂存区里的文件),保存失败 → 不触发清理
- 文件编码异常(如含无法解析的 BOM 或乱码),Sublime 可能跳过处理逻辑
- 你在写 Markdown 或 HTML,某些行末空格有语义(如 Markdown 的换行),它照删不误 —— 它不识别语言规则
- 多光标编辑状态下手动删了空格,但没保存,那下次保存前它仍会再扫一遍
想按需开关?用快捷键或命令面板临时控制
不需要改配置文件也能临时启用/禁用,适合偶尔整理旧项目。关键是用到 toggle_setting 命令,配合正确的 setting 名。
- 调出命令面板:
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS) - 输入并执行:
Preferences: Toggle trim_trailing_white_space_on_save - 也可以绑定快捷键,在
Preferences → Key Bindings – User里加一行:[{"keys": ["ctrl+alt+t"], "command": "toggle_setting", "args": {"setting": "trim_trailing_white_space_on_save"}}] - 注意:这个切换只影响当前窗口的当前视图,关掉再打开文件,又回到配置文件里的默认值
真正容易被忽略的是:这个设置不会影响已存在的空格行,除非你主动保存;而且它不处理文件开头或中间的多余空格,只盯住每行末尾。如果团队协作中有人忘了开,光靠你开也没用——得统一配置,或者用 .editorconfig 配合其他编辑器。










