Sublime Text唯一可靠清理方式是原生命令Trim Trailing White Space:仅删行尾空格和制表符,严格保留缩进、空行及Markdown硬换行,不依赖插件、不破坏语法结构。

Sublime 没有“一键清理无用缩进空白”的功能,也根本不该有——它会破坏语法结构。你真正需要的,是安全删掉行尾空格和制表符,同时严守缩进不碰原则。
为什么不能动缩进空白?
缩进不是“无用空白”,而是 Python、YAML、Makefile 等语言的语法组成部分。reindent 会重排缩进层级,trim_trailing_white_space 则明确跳过所有行首和行中空白——包括缩进用的空格或 Tab。强行用正则 [ \t]+(?=\n) 或插件批量删开头空格,大概率导致 Python 报 IndentationError、YAML 解析失败。
Trim Trailing White Space 是唯一可靠选择
这是 Sublime 原生命令,行为边界清晰,不依赖插件,不改缩进,不碰硬换行:
- ✅ 删除每行末尾的连续空格、
\t(仅限行尾) - ✅ 放过所有缩进(哪怕你用了 8 个空格缩进 Python 函数)
- ✅ 不动空行、不删行中空格、不碰 Markdown 末尾两个空格 + 换行
- ⚠️ 若右下角显示
text.markdown却没反应,先切到Plain Text测试——某些语法模式默认禁用该命令
按完没反应?先查这三处
不是命令失效,而是环境卡住了:
- 右下角语法标识是不是
source.makefile或插件自定义类型?它们可能覆盖了原生命令绑定 - 项目根目录有没有
.sublime-project?里面若含"trim_trailing_white_space_on_save": false,整条链路就断了 - 装了
TrailingSpaces插件且启用了trailing_spaces_on_save?两者冲突时,命令可能静默跳过
真要绑快捷键,只加这一行
别写复杂逻辑,直接在 Preferences → Key Bindings – User 里粘贴:
[{"keys": ["ctrl+alt+t"], "command": "trim_trailing_white_space"}]
注意点:
- Windows/Linux 用
ctrl+alt+t,macOS 必须写cmd+alt+t(Sublime 不自动跨平台映射) - 别加
args参数——这个命令不接受任何参数,加了直接失效 - 检查是否和
Toggle Comment等默认快捷键冲突
最稳的操作永远是:按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入 Trim Trailing White Space 回车。执行后不自动保存,你能肉眼确认差异再决定是否 Ctrl+S。

















