PyCharm 默认开启“Strip trailing spaces on Save”,保存时自动删除行尾空格,属内置代码风格清理行为;需在全局设置和项目级覆盖中均设为None,并检查EditorConfig或外部工具干扰。

PyCharm 为什么删掉行尾空格
PyCharm 默认开启 Strip trailing spaces on Save,保存时自动删除每行末尾的空格(包括空行里的空格)。这不是 bug,是内置的代码风格清理行为,但会干扰需要保留末尾空格的场景——比如 Markdown 表格对齐、某些 shell 脚本缩进逻辑、或 Git diff 中空格敏感的比对。
关闭「保存时删行尾空格」的设置位置
这个开关藏在两个地方,必须都关掉才真正生效:
- 全局设置:
Settings/Preferences → Editor → General → Strip trailing spaces on Save,下拉选None - 项目级覆盖(更关键):
Settings/Preferences → Editor → General → Strip trailing spaces on Save下方有个Override global settings for this project复选框,如果勾选了,它会无视全局设置——务必取消勾选,或同样设为None
改完不用重启,下次保存就生效。注意:已存在的空格不会自动恢复,需手动加回或用 Ctrl+Z 撤销上一次保存操作。
按文件类型单独控制是否删空格
有些文件类型(如 .md、.sh)你希望保留空格,而 Python 文件仍想清理——PyCharm 支持按文件类型配置:
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
- 进入
Settings/Preferences → Editor → General → Strip trailing spaces on Save - 点击右侧
Configure per file type… - 在弹出窗口中,找到
Markdown或Shell Script,把对应项设为Do not strip - Python、Java 等语言可保持
On All Lines或On Modified Lines Only
这样既保住了特定格式的空格语义,又不牺牲其他语言的整洁性。
检查是否被插件或外部工具干扰
即使 PyCharm 设置关了,空格仍被删,大概率是以下原因:
- 装了
EditorConfig插件且项目根目录有.editorconfig文件——检查其中是否有trim_trailing_whitespace = true,改为false或删掉该行 - 启用了外部格式化工具(如
black、prettier),它们可能自带 trim 行为。查Settings → Tools → External Tools或对应格式化插件设置 - Git 配置了
core.whitespace = trailing-space并启用自动清理,这发生在提交阶段,和 PyCharm 无关,但现象相似
行尾空格问题看似小,实际常混杂多层控制逻辑。最稳妥的做法是:先关 PyCharm 本体设置,再逐个排查 EditorConfig 和外部工具链。

















