Cursor 改完代码又被格式化覆盖,常见原因是保存时触发了 Prettier、ESLint、Biome、EditorConfig 或项目脚本,导致 Agent 刚写好的 diff 被另一套工具重排。先暂停自动保存和自动格式化,再让 Agent 做小范围修改。
先确认是谁在改文件
看文件保存后是否立刻发生变化。如果是缩进、引号、换行、import 顺序变了,多半是 formatter;如果逻辑代码也被改,可能是保存钩子、lint fix、代码生成脚本或其他扩展。
不要马上怪 Cursor Agent。先在 VS Code/Cursor 设置里查 format on save、默认 formatter、保存时 code actions。
临时关闭自动动作
处理复杂 AI 修改时,建议临时关闭自动保存和保存格式化。让 Agent 完成改动后,再手动运行 format、lint --fix 和测试。这样 diff 更清楚,也方便定位问题。
如果团队必须启用格式化,至少要告诉 Agent:“不要手动调整格式,按现有 formatter 输出,最后运行格式化命令。”
检查多个格式化器冲突
一个项目里同时有 Prettier、ESLint fix、Biome、插件内置 formatter,很容易互相抢。表现就是文件保存一次变一种样,Agent 读到的内容也不断变化。
解决办法是指定唯一默认 formatter,并把保存动作收敛到一套工具。团队项目最好把命令写进 README 或规则文件。
最稳流程
先关自动保存,限制 Agent 只改目标文件;改完看 diff;再手动格式化;最后跑测试。如果格式化后逻辑坏了,说明原改动或 formatter 配置有冲突,再单独处理。
AI 写代码不怕格式化,怕的是边写边被另一套工具改。把“生成”和“格式化”分成两步,Cursor 修改会稳很多。