深色模式
上半年写了 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 组合使用是当前最优工作流