trailingspaces插件默认只高亮不删除空格,需手动配置"trailing_spaces_enabled":true、"trailing_spaces_on_save":true和"trailing_spaces_modified_lines_only":false三者才生效;与原生trim_trailing_white_space_on_save不可共存,否则引发光标乱跳或重复清理。

TrailingSpaces 插件本身不自动删空格,装完默认只高亮——这是设计,不是 bug。真想让它干活,得手动开开关、配参数、避开冲突点。
为什么装了 TrailingSpaces 却没删空格?
插件默认行为是“提示但不动手”,防止误删 Python 缩进、YAML 对齐空格或 .env 文件里的语义空格。常见失效原因不是安装失败,而是配置没到位:
• trailing_spaces_enabled 没设为 true —— 关闭等于没装
• trailing_spaces_on_save 没开 —— 保存时不会触发清理
• trailing_spaces_modified_lines_only 设为 true —— 只清你改过的行,老代码里的尾随空格全漏掉
• trailing_spaces_files_pattern 正则匹配排除了当前文件类型(比如默认跳过 .md 或 .log),临时设为空字符串 "" 测试是否生效
怎么配 trailing_spaces_on_save 才真正生效?
打开 Preferences → Package Settings → Trailing Spaces → Settings – User,确保 JSON 内容包含这三行(顺序无关,但必须都在):
• "trailing_spaces_enabled": true
• "trailing_spaces_on_save": true
• "trailing_spaces_modified_lines_only": false
注意:trailing_spaces_include_empty_line 建议保持 false(空行末尾本不该有空格,强行清理可能破坏模板格式);如果状态栏右下角没出现 TrailingSpaces: ON,重启 Sublime 再试一次。
TrailingSpaces 和原生 trim_trailing_white_space_on_save 能共存吗?
不能。两者同时启用会冲突:光标乱跳、保存时界面闪一下、甚至重复清理导致 git diff 异常。
• 原生选项更轻量,只删非空行末尾的空格和 \t,不动缩进、空行、行中空格
• TrailingSpaces 提供高亮 + 更细粒度控制(比如按 scope 排除、选区清理)
建议二选一:
• 日常开发优先用原生 trim_trailing_white_space_on_save(配在 Preferences → Settings – User)
• 需要高亮确认再手动清理,或处理特殊语法(如自定义 DSL),再启用 TrailingSpaces 并关掉原生项
手动清理当前文件,该用哪个命令?
别用正则瞎替换(^\s+|\s+$ 会吃掉缩进,[ \t]+$ 不勾 Regular Expression 无效):
• 快捷键:Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入 Trim Trailing White Space 回车——这是 Sublime 原生命令,安全、精准、只动行尾
• 如果要用 TrailingSpaces 手动删,命令是 TrailingSpaces: Delete,支持选中多行后只清选区,但前提是插件已加载成功(状态栏有 ON)
• 绑定快捷键更高效:在 Preferences → Key Bindings – User 里加一行:{"keys": ["ctrl+alt+t"], "command": "trailing_spaces_remove"}(注意系统级快捷键冲突,比如 Linux 的 ctrl+alt+t 默认打开终端)
source.python 或 text.markdown 可能加载了语法专属设置,把全局配置压掉了。临时切到 Plain Text 测试,比反复检查 JSON 格式更快定位问题。











