Cursor 为什么总喜欢自己重写一套,而不是沿用你项目里已经有的实现?这类抱怨很常见,但 Cursor 官方在 Reuse Existing Code 里其实已经把答案说透了:如果你没有明确要求它“先找现有实现,再决定要不要新写”,它默认就可能直接生成一版新的。
为什么会这样
AI 编辑器擅长补全和生成,但“生成得出来”不等于“最适合你这个仓库”。尤其在老项目、多人协作项目、monorepo 里,真正更合理的做法通常是沿用已有模式。可如果你的提示词只是“帮我写一个登录校验”“给我加一个缓存层”,它完全可能跳过检索阶段,直接造新轮子。
更实用的解决办法
最直接的方法不是换模型,而是把规则前置。官方给出的思路就是:先要求 Cursor 把请求改写成“我在找是否已经有能做这件事的代码”,先搜代码库,再决定是否新建实现。落地时你可以这样做:
- 在项目规则里写明:先搜索同类实现,再生成新代码。
- 提问时直接加一句:先找现有用法、现有组件、现有 service,不要马上重写。
- 关键文件用 `@Files` 或聊天上下文明确点给它,别让它只凭附近几行代码发挥。
所以这类问题的核心不是“Cursor 不会复用”,而是你没有给它一个必须先复用的工作顺序。把顺序设对之后,它的表现通常会稳定很多,也更像一个能融入现有代码库的协作者。