
启用 trim_trailing_white_space_on_save 可实现保存时自动删除行尾空格,仅对已保存文件生效,不影响空行;需在用户设置中添加该选项,并排查语法特定设置或未命名标签页等常见问题。
Sublime Text 默认不会清理行末空格,但通过修改 settings 就能实现保存即清理。关键是启用 trim_trailing_white_space_on_save,它控制的是「保存动作」而非实时删除,避免误删或干扰编辑节奏。
操作路径:Preferences → Settings,在右侧用户设置(右侧面板)中添加或修改:
{
"trim_trailing_white_space_on_save": true
}
、\t 等空白字符draw_white_space,可直观看到空格是否被清理干净ensure_newline_at_eof_on_save
很多「洁癖配置」会顺手加上 ensure_newline_at_eof_on_save,但它和行尾空格是两件事:前者保证文件末尾有且仅有一个换行符,后者只处理行内末尾空白。二者常被混用,但行为独立、互不影响。
如果你希望文件结尾严格符合 POSIX 规范(比如 Git 提示 no newline at end of file),可以加这一项:
{
"ensure_newline_at_eof_on_save": true
}

trim_trailing_white_space_on_save 绑定理解——删空格 ≠ 补换行配置写对了却没效果,大概率是被其他设置覆盖、或当前视图处于特殊状态。重点排查以下位置:
Python)→ Settings – Syntax Specific,里面若有 "trim_trailing_white_space_on_save": false,会优先生效/path/to/file.py),未命名的 untitled 标签页不会触发 on_save 类行为Ctrl+Shift+P 调出命令面板执行临时清理当前文件所有行尾空格,不用等保存:按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Trim Trailing White Space 并回车即可。这个命令是即时执行的,适合代码审查前快速整理。
它和自动清理的区别在于:
真正难处理的其实是混合缩进(空格+Tab)和不可见 Unicode 空白字符(如 \u200B),这些 Sublime 默认的 trim_trailing_white_space_on_save 不识别,得靠插件或正则替换。