上半年寫了 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 組合使用是當前最優工作流