Skip to content

AI 编码工作流升级:从 Copilot 到 Cursor

上半年写了 Copilot 半年使用报告。下半年的变化更大——Cursor 出现了,AI 编码从"补全工具"变成了"编码伙伴"。

Copilot vs Cursor

Copilot 是代码补全工具,Cursor 是 AI-native 编辑器。两者的定位完全不同:

Copilot:  在你写代码时给你建议,你来决定接不接受
Cursor:   整个编辑器围绕 AI 设计,你描述意图,AI 来改代码

Cursor 的核心功能

Cmd+K:自然语言编辑

选中一段代码,按 Cmd+K,输入指令:

把这段逻辑提取成一个 custom hook,
返回 { data, loading, error, refetch }

Cursor 会直接改代码,不只是给建议。而且它能看到项目上下文,生成的代码会引用项目里已有的类型和工具函数。

Cmd+L:对话模式

类似 ChatGPT,但能感知整个项目:

Q: 这个组件的性能问题在哪?
A: PostList 组件每次渲染都创建新的 filter 函数,
   建议用 useMemo 包裹。另外 db.post.findMany
   缺少分页参数,大数据量时会全量加载。

   [Generate fix]

点击 "Generate fix" 直接应用修改。

Codebase 索引

Cursor 会索引整个项目代码。问它"这个项目里怎么处理错误的",它能搜索并总结全局的错误处理模式。

实际使用体验

适合的场景

重构代码(最高效)

选中 200 行旧组件 → Cmd+K
"重构成函数组件,用 TypeScript,添加类型定义"

10 秒后得到重构后的代码,类型定义完整。
手动调整几个细节就完成了。

生成重复性代码

"根据 UserSchema 生成对应的 API CRUD handler"
"根据这个 mock 数据生成对应的测试用例"

理解陌生代码

选中一段没看过的库代码 → Cmd+L
"这段代码在做什么?为什么这样写?"

不适合的场景

复杂业务逻辑

AI 不理解业务背景,生成的逻辑可能看起来合理但实际有坑。

架构决策

"这个项目应该用 monorepo 还是 polyrepo" 这种问题 AI 给不出好的答案。

需要精确控制的代码

比如安全相关的代码、性能关键路径,AI 生成的代码需要更多审查。

和 Copilot 组合使用

我的实际工作流:

1. Copilot 负责日常代码补全(Tab 键接受)
2. Cursor Cmd+K 做有方向的代码修改
3. Cursor Cmd+L 做代码理解、调试辅助
4. 重要代码仍然手动审查每一行

两者不冲突,Copilot 补全 + Cursor 深度编辑是当前最佳组合。

对团队的建议

  • 不要禁止 AI 工具,要引导正确的使用方式
  • 教团队"审查生成代码"的意识,比"会不会用 AI"更重要
  • 敏感代码(密钥、核心算法)不要输入到 AI 工具中
  • 评估 AI 工具的 ROI:编码速度提升 30-50% 是真实的,但学习和适应有成本
  • 关注 Cursor / Copilot 竞争格局,这个领域变化非常快

小结

  • Cursor 把 AI 从"代码补全"提升到了"编码伙伴"级别
  • Cmd+K 自然语言编辑、Cmd+L 项目感知对话是核心功能
  • 重构、生成重复代码、理解陌生代码是最佳场景
  • 复杂业务逻辑和架构决策仍然需要人来做
  • Copilot + Cursor 组合使用是当前最优工作流

MIT Licensed