开启 trim_trailing_white_space_on_save 后保存自动清理行尾空格和制表符,需在用户设置中正确配置为 true,注意优先级覆盖、插件冲突及语法类型影响。

trim_trailing_white_space_on_save 开启后就能在保存时自动清理行尾空格和制表符,根本不需要插件——这是 Sublime Text 原生功能,稳定、轻量、不冲突。
怎么配 trim_trailing_white_space_on_save 才真正生效
它只在用户设置(Preferences → Settings 右侧面板)里起作用,不是默认设置,也不是项目设置或语法专属设置。
- 确保 JSON 格式合法:用英文双引号,整块内容被
{}包裹,若非最后一项需加逗号 - 键名必须是
trim_trailing_white_space_on_save(注意下划线数量和拼写,常见错写成triming或trailing_space_on_save) - 值设为
true,不是"true"(字符串会失效) - 保存该设置文件后立刻生效,无需重启 Sublime
为什么开了却没反应?大概率是被更高优先级规则覆盖
Sublime 的配置有明确优先级:项目设置(.sublime-project) > 语法专属设置(如 Settings – Syntax Specific) > 用户设置。你配了全局,但可能某处写了 "trim_trailing_white_space_on_save": false。
- 右下角看当前文件的语法标识(如
source.python、text.html),临时切换为Plain Text测试是否恢复 - 已安装
TrailingSpaces插件且启用了trailing_spaces_on_save,两者同时开会导致光标跳动、重复清理,建议只留一个 - 某些插件(如
LaTeXTools、MarkdownPreview)会在其语法定义中强制设为false,得去对应插件的 Package Settings 里查 -
.sublime-project文件里若显式写了false,它会直接压掉用户设置
想手动一键清理当前文件?别用正则瞎替换
快捷键 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Trim Trailing White Space 回车即可——这是 Sublime 内置命令,只删行尾空格和 \t,不动缩进、不碰空行、不伤 Markdown 换行语法(两个空格+换行)。
- 如果这个命令没效果,说明当前语法类型被全局排除(比如
text.markdown),可临时切到Plain Text再试 - 正则替换仅作备用:
Ctrl+H→ 查找框填[ \t]+$→ 勾选.*(Regular Expression)→ 替换框留空 → Replace All - 别用
^\s+$:它会匹配空行本身,但漏掉“只有空格没换行”的边缘情况;也别勾选. matches newline,否则$失效
要不要加 trim_automatic_white_space?看场景再决定
它会在你按 →、Enter 或点击其他行时,立刻清理当前行尾空白。适合 Python/Go 等缩进敏感语言边写边修,但有副作用:
- 大文件编辑时可能轻微卡顿(每移出一行都触发一次扫描)
- 在
text.markdown中,两个空格+换行是合法换行,它会误删 - 在
source.makefile中,行尾空格参与变量展开,删了会破坏逻辑 - 若要局部禁用,用 Preferences → Settings – Syntax Specific 单独设
"trim_automatic_white_space": false
.txt 文件测试,比翻日志快得多。











