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