Sublime Text 默认不自动删除行尾空格,需手动在用户设置中添加 "trim_trailing_white_space_on_save": true;该功能仅对当前语法类型生效,支持语法专属关闭、临时命令清理及隐藏字符例外说明。

Sublime Text 保存时自动删除行尾空格怎么配
默认不开启,必须手动配置 trim_trailing_white_space_on_save 选项。这个设置生效后,每次保存文件时,Sublime 会自动删掉每行末尾的空格和制表符(\s+$ 匹配部分),但不会动行首空格、空行或缩进用的空格/Tab。
操作路径:Preferences → Settings,在右侧用户设置(User)面板中加入:
{
"trim_trailing_white_space_on_save": true
}
注意:不要写在左侧默认设置里,那会被覆盖;也不用重启,改完立刻生效。
为什么改了没反应?常见失效原因
最常踩的坑是拼写错误或作用域不对。这个设置只对当前文件类型生效,如果当前文件是未识别的类型(比如打开一个无后缀的脚本),Sublime 可能按 Plain Text 模式处理,而该模式默认不启用该选项。
- 检查右下角状态栏显示的语法类型(如
Python、JavaScript),如果不是预期类型,手动点击切换(View → Syntax → …) - 确认没有在
Settings – Syntax Specific里被单独关掉了(比如某个语言的专属设置里写了"trim_trailing_white_space_on_save": false) - 确保没装冲突插件,比如某些格式化插件(
JsPrettier、AutoPEP8)可能在保存时覆盖行为,建议先禁用测试
想保留某些文件类型的尾部空格怎么办
比如 Markdown 中两个空格结尾表示换行,你不想被自动删掉。这时可以为特定语法单独关闭该功能:
打开 Preferences → Settings – Syntax Specific(注意不是普通 Settings),当前如果是 Markdown 文件,就会弹出对应语法的设置面板,填入:
{
"trim_trailing_white_space_on_save": false
}
这样只有 Markdown 文件豁免,其他语言照常清理。同理可应用于 reStructuredText、Org 等需要尾空格的格式。
只清理当前文件、不改设置的临时方案
快速手动清理一次:按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Trim Trailing White Space 并回车。这个命令不依赖设置,任何时候都可用,适合临时救急或代码审查前统一清理。
它等价于正则替换 \s+$ → 空,但比手敲安全,不会误删缩进或空行。
真正容易被忽略的是:这个功能只清理「可见空格」,对 Unicode 不间断空格( )、零宽空格等不可见字符无效——如果遇到奇怪的“空格删不掉”,大概率是这类隐藏字符,得用插件或正则 [\u2000-\u200F\u2028-\u202F\u2060-\u206F] 单独处理。










