关闭PyCharm保存时自动格式化需三步:1. Settings→Tools→Actions on Save取消Reformat code和Optimize imports;2. Settings→Tools→File Watchers禁用yapf/black等外部工具监听;3. Settings→Editor→General→Smart Keys关闭空格插入、换行合并及粘贴自动缩进。

关闭 PyCharm 保存时自动格式化
最常被误认为“自动排版”的行为,其实是保存时触发的 Reformat code。它不是实时发生的,而是在你按下 Ctrl + S(或 Cmd + S)那一刻才执行。如果你没主动按快捷键 Ctrl + Alt + L 却发现代码变了,大概率是这个开关开着。
关闭路径:Settings → Tools → Actions on Save,取消勾选 Reformat code。注意:这里不涉及任何插件或外部工具,纯 IDE 内置设置。
- 如果同时勾选了
Optimize imports,也会在保存时删掉未使用的 import —— 这个也建议一并关掉,除非你明确需要 - 该设置作用于当前项目,切换项目需重新确认
- 关闭后,
Ctrl + Alt + L仍可手动格式化,只是不会偷偷改你的代码
禁用 File Watchers 触发的自动格式化
如果你装过 yapf、black 或 autopep8 并配置了 File Watchers,那保存动作可能被监听并转发给这些工具执行。这种格式化不受 Actions on Save 控制,得单独关。
检查路径:Settings → Tools → File Watchers,列表里若存在名称含 yapf、black、autopep8 的条目,直接取消勾选左侧启用开关,或选中后点减号删除。
- File Watchers 是插件功能,若没装过
File Watchers插件,这个页面根本不会出现 - 即使删了 watcher,对应命令行工具(如
yapf)仍可手动调用,不影响日常使用 - 部分团队模板项目会预置 watcher,建议检查项目级
.idea/watcherTasks.xml文件确认是否被 git 提交过
防止格式化干扰粘贴或输入过程
PyCharm 默认会在你输入符号(如 :、=、()后自动补空格或换行,这不是“格式化”,而是“智能输入辅助”。它会让刚粘贴进来的紧凑代码瞬间变形,容易误判为自动排版。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
调整路径:Settings → Editor → General → Smart Keys,找到 Python 相关项:
- 取消
Insert spaces around operators(否则a+b会变a + b) - 取消
Join lines on backspace(避免退格时意外合并两行) -
Auto-indent on paste建议关掉,否则粘贴缩进混乱的代码会立刻被重排
这类行为不记录在“格式化”菜单里,但对代码外观影响极直接,且容易被忽略。
为什么关了还“自动变”?查这三个地方
如果确认关掉了上述所有选项,代码依然在你没操作时变动,优先排查:
- 是否启用了
EditorConfig插件?检查项目根目录有无.editorconfig文件,里面若含indent_style或insert_final_newline等规则,PyCharm 会强制遵守 - 是否开了
Power Save Mode?该模式下部分实时检查被禁用,但某些格式化逻辑反而更激进——关掉它:File → Power Save Mode - 是否多人协作项目?有人提交了
.idea/codeStyleSettings.xml,导致你本地继承了他们的格式化偏好。可删掉该文件让 PyCharm 重建默认
真正“自动”的格式化几乎都源于保存动作或外部监听,没有后台常驻进程在静默重写你的文件。只要锁死这几个入口,就能彻底止住非预期变更。

















