开启 trim_trailing_white_space_on_save 需在 Preferences → Settings 用户配置中添加 "trim_trailing_white_space_on_save": true,保存后显式 Ctrl+S/Cmd+S 才生效;失效常见原因包括 save_on_focus_lost 为 true、文件被忽略、项目设置覆盖或插件干扰。

如何开启 trim_trailing_white_space_on_save 设置
Sublime Text 默认不自动清理行尾空格,必须手动启用。这个行为由配置项 trim_trailing_white_space_on_save 控制,设为 true 即可生效。
操作路径:菜单栏 Preferences → Settings,在右侧用户设置面板中添加或修改该字段:
{
"trim_trailing_white_space_on_save": true
}
保存文件后,下次执行 Ctrl+S(Windows/Linux)或 Cmd+S(macOS)就会自动删除每行末尾的空格和制表符。
为什么改了没反应?常见失效原因
即使设置了 trim_trailing_white_space_on_save,也可能不生效,主要因为以下几种情况:
-
save_on_focus_lost为true时,窗口失焦自动保存,但此时不会触发空格清理 —— 这是 Sublime 的设计限制,只对显式Ctrl+S生效 - 当前文件被标记为“已忽略”格式(如某些插件临时禁用保存钩子),可在状态栏右下角查看语法标识,尝试切换为
Plain Text测试 - 项目级设置(
.sublime-project)覆盖了用户设置,需检查项目设置里是否显式设为false - 第三方插件(如
TrailingSpaces)可能干扰原生行为,可临时禁用插件验证
trim_trailing_white_space_on_save 和 draw_white_space 的关系
两者功能独立,但常一起使用以便确认效果:
-
trim_trailing_white_space_on_save是「动作」:保存时真正删掉空格 -
draw_white_space是「显示」:让空格/制表符可视化,取值如"all"、"selection"或"none"
建议调试时临时开启:
{
"trim_trailing_white_space_on_save": true,
"draw_white_space": "all"
}
这样保存前后能直观看到行尾空格是否被清除。注意:draw_white_space 不影响实际内容,纯属视觉辅助。
某些场景下你可能不想自动清理
不是所有文件都适合全局启用该选项。例如:
- Markdown 表格或缩进敏感的文档(如某些 DSL 配置)依赖行尾空格实现换行,自动清理会破坏格式
- 团队协作中若他人未启用此设置,反复提交「仅空格变更」的 diff,容易污染 Git 历史
- 大文件(>10MB)保存时额外扫描行尾空格可能略微增加延迟,虽通常不明显
如需按语法类型控制,可用插件 ApplySyntax 或自定义 sublime-settings 文件,但原生 Sublime 不支持 per-syntax 开关 trim_trailing_white_space_on_save。










