sublime text一键删除行尾空格需在preferences → settings – user中添加"trim_trailing_white_space_on_save": true,保存即自动清理非空行末尾空格和制表符,不影响缩进、空行及行中空格。

Sublime 中一键删除行尾空格
默认情况下 Sublime 不会自动清理行尾空格,但这个习惯容易引发 Git diff 脏变更、Python 缩进误判或 JSON 格式校验失败。启用后每次保存就自动处理,比手动更可靠。
操作路径:Preferences → Settings – User,在右侧 JSON 配置中添加:
"trim_trailing_white_space_on_save": true
注意:trim_trailing_white_space_on_save 是布尔值,必须写 true(不能加引号),否则配置无效;如果已有同名键,直接改值即可,不要重复添加。
手动清除全部空行(含连续空行)
Sublime 自带的「行操作」不支持批量删空行,但正则替换能一步到位。关键在于匹配“只含空白符(含制表符、空格、回车)的整行”,且避免误删带注释的空行(如 // 或 # 开头的行)。
打开查找面板(Ctrl+H / Cmd+H),勾选 Regular Expression(Alt+R),输入:
^\s*$(\r?\n)
替换为空(留空),再点 Replace All。说明:
-
^和$锚定行首行尾 -
\s*匹配零个或多个空白字符(含空格、\t、\r、\n) -
(\r?\n)捕获换行符,确保删的是“整行”而非只删内容
若文件是 Windows 换行(\r\n)而正则没生效,可改用 ^\s*\r?\n 并关闭“dot matches newline”选项。
用插件实现智能清理(推荐给频繁编辑者)
纯手动或正则适合单次处理,但多人协作项目常需统一风格:比如删空行 + 行尾空格 + 文件末尾换行符(EOF newline)。这时候装 TrailingSpaces 或 EditorConfig 更省心。
安装方式(通过 Package Control):
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入
Package Control: Install Package回车 - 搜
TrailingSpaces安装,它会高亮行尾空格,按Ctrl+Shift+P再输TrailingSpaces: Remove即可清除
注意:TrailingSpaces 默认不删空行,如需联动,建议搭配 SublimeCodeIntel 或自定义键绑定——它本身不处理空行,别指望一键全包。
为什么不用“Find All + Delete”暴力删空行?
有人试过用 ^\s*$ 查找后 Ctrl+A → Delete,结果发现:光标停在最后一行开头、文件末尾少一个换行、甚至把 if (x) { 后面的换行也删了导致语法错。根本原因是 Sublime 的“Find All”选中的是匹配文本,而 Delete 会把光标后字符一并吞掉,破坏行结构。
安全做法只有两个:
- 用正则替换(如上文
^\s*$(\r?\n)),确保只删整行 - 用插件如
AdvancedRename或Text Pastry批量操作,它们内部做了行边界保护
真正麻烦的不是怎么删,而是删完要不要保留文件末尾的换行符——Git 建议有,Python PEP8 要求有,但某些嵌入式脚本又不能有。这得看团队规范,Sublime 本身不替你决定。











