启用 trim_trailing_white_space_on_save 即可保存时自动清理已修改行末空格;建议同时设 ensure_newline_at_eof_on_save 避免 Git 警告;它不处理未打开文件、纯空白行及未修改行。

Sublime Text 默认不自动删尾部空格,但通过内置设置就能开启,无需插件。
如何启用 trim_trailing_white_space_on_save
这是 Sublime 的原生功能,控制保存时是否清理行末空格和制表符。启用后,只影响被修改过的行,不会动未改动的空行或纯空白行。
- 打开 Preferences → Settings(左右双栏配置)
- 在右侧用户设置(右栏)中添加这一行:
"trim_trailing_white_space_on_save": true
- 保存文件,立刻生效
为什么建议同时设 ensure_newline_at_eof_on_save
单独删尾空格后,文件末尾可能缺换行符,而 Git 会警告 no newline at end of file。两者配合更干净:
- 在同一用户设置里追加:
"ensure_newline_at_eof_on_save": true
- 注意:这个选项仅在文件末尾确实没换行符时才补一个,不会多加空行
哪些情况它不会删?要特别注意
该机制有明确边界,不是“全量扫描式清理”,容易误以为失效:
- 只作用于 当前编辑并保存的文件,不处理项目里其他未打开的文件
- 如果某行只是纯空格/制表符(无任何字符),默认 不会删除整行——除非你额外开启
draw_white_space并手动删,或装插件如TrailingSpaces - 选中部分文本后保存,依然会处理整行,但只限于被修改过的行(即光标移动过、内容变更过的行)
真正要全局清理旧文件,得用 Ctrl+H(替换)配合正则 \s+$,或者跑一次 shell 命令:
sed -i '' 's/[[:space:]]*$//' *.py(macOS)或
sed -i 's/[[:space:]]*$//' *.js(Linux)。别指望保存自动覆盖历史积灰。










