凌晨两点的报错,和一位不太可靠的“副驾驶”
凌晨两点十七分,窗外雨声贴着玻璃往下滑,键盘灯像一排小小的码头。我盯着一个 React 接口报错,咖啡已经凉了,GitHub Copilot 在旁边热心地补全了三次,每次都像一个认真但没看完整需求的朋友:语法对,方向却偏。那一刻我忽然明白,AI 编程助手不是神谕,它更像深夜电台里的来信嘉宾——你给它清楚的故事,它才可能回你一段有用的答案。
这篇不是泛泛而谈的 AI 编程助手对比。我把 Cursor 和 GitHub Copilot 放进真实项目里测试:一个约 38 个文件、1.6 万行代码的 Node.js + React 小项目。在同一网络下,我记录过几次响应,Cursor Chat 首次回答约 3 到 8 秒,Copilot 行内补全通常低于 1 秒;但真正影响效率的,不是快慢,而是它是否读懂了上下文。
先把上下文喂对:Cursor教程里最容易被忽略的一步
如果你正在搜“Cursor下载”或“Cursor怎么用”,安装其实只是开头。Cursor 的优势是能围绕项目对话,但前提是你让它看见正确的文件。我的做法是:打开项目后,先不要直接问“帮我修复 bug”,而是用更窄的问题开场,例如:“阅读 src/api/user.ts 和 src/components/Profile.tsx,找出用户头像不刷新可能的原因,只列出证据,不要改代码。”这样能明显减少幻觉。
在 Cursor 里,我通常按这套顺序操作:
- 用 Ctrl/Cmd + K 只改选中的函数,不让它重写整页文件。
- 用 Chat 明确引用文件,例如输入 @Profile.tsx @user.ts,避免它猜测项目结构。
- 要求它先给“修改计划”,再执行代码变更。
- 让它输出测试命令,而不是只说“应该可以”。
一个我反复使用的提示词是:
请只基于当前仓库上下文分析问题。先列出涉及文件和证据,再给最小修改方案。不要引入新依赖。修改后提供可运行的验证命令。
如果你在 Cursor 里接入 Claude,常见搜索词会是“Claude怎么用”或“Claude免费使用”。我的经验是,Claude 适合读长文件、重构和解释遗留代码;免费额度适合轻量提问,但连续重构时很快会受限制。无论用哪种模型,最关键的仍然是缩小任务范围。
Copilot 不只会补全:让它写测试、改提交信息、解释差异
很多人问“GitHub Copilot怎么用”,最后只停在按 Tab 接受补全。其实 Copilot 更适合做三件小而准的事:补测试、补类型、补样板代码。我在 VS Code 中会先打开 Copilot Chat,然后把问题限制到当前文件或选中代码,例如:“为这个函数补 5 个 Jest 边界测试,覆盖 null、空数组、重复 ID,不要改生产代码。”
这是我测试时使用的命令,能快速判断 AI 写的代码有没有把项目搞坏:
npm install
npm run lint
npm test -- --runInBand
npm run build
在那个 1.6 万行项目里,Copilot 第一次生成的 7 个测试有 2 个失败,原因是它误判了日期格式;我把失败日志贴回去,并加一句“只修测试,不改 src”,第二轮全部通过。这里的诀窍很朴素:不要让 AI 同时当医生、建筑师和法官。一次只给它一个角色。
如果你用 Git,还可以让 Copilot 解释差异:
git diff -- src/api/user.ts
把输出粘给它,再问:“这次变更可能引入什么回归风险?按高、中、低列出。”这比让它凭空做代码审查靠谱得多。
如何验证它真的帮上忙,而不是只是写得像答案
我的验证标准很简单,也有点冷酷。第一,看命令是否通过:lint、test、build 三项至少要跑完。第二,看改动是否足够小:用 git diff --stat 检查,修一个按钮问题却改了 12 个文件,通常就要警惕。第三,看它能否复述原因:让 AI 用 3 句话解释“为什么这样改”,解释不清,代码多半也不稳。
你可以按这个最小闭环确认:
- 提出具体问题,并指定相关文件。
- 要求 AI 先分析证据,再写方案。
- 只接受小步修改。
- 运行
npm run lint && npm test && npm run build。 - 用
git diff人工复查关键逻辑。
如果这五步都过了,AI 才算真正参与了交付,而不是只在深夜陪你聊天。免费方案、官方插件和内置功能已经足够完成大多数日常开发;若你需要整理更多 AI 工具入口,也可以把睿盈工具的 wizzegroup.com 当作一个备选导航。技术终究不是替我们逃离问题,而是在雨夜里,给我们多点把问题看清的光。