保存时自动删除行尾空格需开启strip trailing spaces on save开关,路径为settings > editor > general > on save;若未生效,检查文件语言类型、编辑器焦点及.editorconfig中trim_trailing_whitespace设置。

保存时自动删行尾空格,靠的是 Strip trailing spaces on Save 这个开关,不是格式化、不是插件、也不是正则替换——开对位置就生效。
在哪打开这个设置
路径很固定:Settings > Editor > General > On Save(macOS 是 Preferences)。找到 Strip trailing spaces on Save,勾上它。下面两个选项按需选:
-
All lines:整文件扫一遍,不管动没动都删 -
Modified lines only:只处理你这次改过的那些行,更保守,适合混用老旧代码的项目
为什么开了还是不删
常见卡点就三个:
- 当前文件被识别为
Text或Plain Text,右下角状态栏语言标识不是目标语言(比如JavaScript或HTML)——点它手动切过去 - 焦点不在编辑器里,而在 Terminal / Git 工具窗口 / 设置面板中——
Ctrl+Alt+L和保存动作都只对编辑区有效 - 项目根目录存在
.editorconfig,且里面写了trim_trailing_whitespace = false——它会直接覆盖 IDE 设置,临时禁用请去Settings > Editor > Code Style关掉Enable EditorConfig support
删空格 ≠ 删空行,别指望它干这事
Strip trailing spaces 只管每行末尾的空白字符(\s*),对连续换行(\n\n\n)完全没反应。要控空行数量,得进 Settings > Editor > Code Style > [语言],点右下角 Configure,在 Blank lines 区域调 Keep maximum blank lines,设成 1 才能压平多余空行。这两处是独立开关,必须都配。
真正容易被忽略的是:保存删空格是「实时」的,而空行控制依赖格式化触发(比如 Ctrl+Alt+L 或保存时勾了 Reformat code on save)。不组合使用,就永远有“看着整洁了,一保存又冒出来”的错觉。











