开启 trim_trailing_white_space_on_save 可在保存时自动清理行尾空格,需确保 json 合法、配置在 user 设置中,且未被语法专属设置或插件覆盖;配合 trim_automatic_white_space 可实现实时清理,但需注意 markdown、makefile 等格式的语义空格风险。

trim_trailing_white_space_on_save 开启后就能在保存时自动清理行尾空格,根本不需要插件——这是 Sublime Text 原生功能,稳定、轻量、不冲突。
怎么配 trim_trailing_white_space_on_save 才真正生效
不是加一行就完事,必须确保整个 JSON 结构合法且落在正确作用域:
- 打开 Preferences → Settings,只改右侧「User」面板(左侧 Default 会被升级覆盖)
- 整个内容必须是合法 JSON:用英文双引号,所有键值对包在
{}内,非末项后加逗号 - 添加这行:
"trim_trailing_white_space_on_save": true - 保存设置文件(
Ctrl+S或Cmd+S),不用重启 - 新建一个
.txt文件测试:输入hello(末尾带空格),按Ctrl+S,空格应立刻消失
为什么配了却没反应?常见覆盖源
失效几乎从不因为配置写错,而是被更高优先级规则压住:
- 右下角显示的语法类型(如
source.python、text.html)加载了专属设置,覆盖了全局配置;可临时切为Plain Text验证 - 已安装
TrailingSpaces插件且启用了trailing_spaces_on_save,两者同时启用会导致光标跳动、重复清理,建议二选一 - 项目级配置(
.sublime-project)或插件(如LaTeXTools、MarkdownPreview)显式设了"trim_trailing_white_space_on_save": false - JSON 格式非法(中文引号、多逗号、漏大括号)时,整个用户设置静默失效,Sublime 不报错
想编辑中就清理?加 trim_automatic_white_space
只开 trim_trailing_white_space_on_save 是“攒着等保存才扫”,若希望更即时:
- 在用户设置里补上:
"trim_automatic_white_space": true - 它会在你按
→或Enter离开某行时,自动清掉该行尾部空格和\t - 不碰缩进空格(比如函数体内
return x前的空格)、不处理空行、不动行中空格 - 但注意:
text.markdown中两个空格 + 换行是硬换行语法,删了会坏渲染;source.makefile行尾空格可能参与变量展开,这类场景建议用trim_trailing_white_space_on_save_exclude排除
手动清理老文件,别碰正则
正则替换容易误伤,尤其新手常写的 ^\s+$ 会漏掉纯空行(只有 \n 的行):
- 快捷键
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)打开命令面板 - 输入
Trim Trailing White Space,回车执行 - 它只清理行尾空白,不跨行、不改换行结构、不依赖正则引擎版本
- 这个命令只作用于当前视图,不批量处理多个标签页或文件夹
text.markdown 和 source.makefile 里,删错一个空格就可能让文档渲染异常或构建失败。全局开关开得爽,但关不掉的语法类型才是埋雷点。











