用了三个月 Cursor,现在回到 VS Code 写代码会有点不适应。

不是说 Cursor 有多完美,而是有几个功能真的改变了我的编码节奏。但也有一些地方用起来还是烦,毕竟不是每次 AI 给的代码都对。

Cursor 是什么

Cursor 是一个基于 VS Code 改造的编辑器,内置了 AI 能力。界面和 VS Code 几乎一模一样,VS Code 的插件基本都能直接用,迁移成本很低。

核心功能是 AI 补全、AI 对话、AI 改写,用的底层模型是 Claude 和 GPT-4,不需要你自己配 API key(用他们的订阅就行)。

Tab 补全:最常用,也是最惊喜的

Cursor 的 Tab 补全比 GitHub Copilot 聪明一些——它不只是补全当前行,而是会预测你接下来要做什么。

举个真实的例子:我在写一个组件的 props 类型定义,写完 interface ButtonProps,按下 Tab,它直接帮我生成了整个接口,包括 variantsizedisabledonClick 这些合理的字段,连类型都对。

更厉害的是 多行跳跃式补全。比如我刚在函数里加了一个参数,光标移到调用处,它会自动提示我更新调用代码。这个”感知上下文变化”的能力比普通自动补全强不少。

当然也会猜错,特别是在业务逻辑比较特殊的地方。但接受还是拒绝只需要按 Tab 或 Esc,成本很低。

Composer:最强的功能,也最容易用滥

Composer(Cmd/Ctrl + I)是 Cursor 里最受关注的功能,可以直接让 AI 修改多个文件。

用得好的场景:

  • 新建一个完整的功能模块:「帮我在 src/components 下创建一个 Modal 组件,需要支持 title、content、onClose props,用 Tailwind 写样式」。它会直接生成文件,不用你复制粘贴。
  • 重构已有代码:「把这个类组件改成函数组件,用 hooks 实现」,选中文件之后交给它处理。
  • 批量修改:比如项目里有 20 个地方用了旧的 API,让 Composer 帮你全部替换。

但我踩过一个坑:让它改动范围大的时候,它有时候会「过度发挥」,改了你不让它改的地方,甚至删掉一些代码。所以我现在的习惯是每次给的任务尽量具体,改完之后必须 git diff 看一遍。

@ 符号引用:用好了事半功倍

在对话框里用 @ 可以引用项目里的文件、函数、文档,AI 回答的时候会基于这些上下文。

1
@src/api/user.ts 这个文件里的 updateUser 函数怎么加错误处理?
1
@README.md 根据这个文档帮我写一个新功能的使用说明

这比把代码手动粘进对话框方便多了,而且 AI 能看到完整文件,不会因为代码被截断而误解逻辑。

和 GitHub Copilot 的区别

我两个都用过,简单说一下差异:

Copilot 的优势

  • 直接集成在 VS Code,不用换编辑器
  • 对老代码库的适应性好一点
  • 订阅费用低($10/月)

Cursor 的优势

  • Composer 多文件编辑是 Copilot 没有的
  • 对话理解能力更强,能做更复杂的任务
  • Tab 补全的上下文感知更智能

如果你只需要基础的代码补全,Copilot 足够了。如果你想让 AI 帮你完成整块功能,Cursor 更强。

一些使用习惯

用了这段时间总结的几个习惯:

描述任务要具体。「帮我写一个列表组件」效果很差,「帮我写一个支持分页、排序、筛选的表格组件,数据通过 props 传入,用 TypeScript,样式用 Tailwind」效果好很多。AI 的输出质量直接跟你的描述质量挂钩。

不要无脑接受。Tab 补全按太快,很容易接受了一段有逻辑问题的代码,还不知道是什么时候混进去的。重要逻辑还是要自己写或者仔细看。

用 Chat 模式理解代码。我现在读不熟悉的库或者老代码,习惯把代码丢给 Cursor 问「这段代码做了什么,有没有潜在问题」,比直接读代码快很多。

价格:免费版有限额,Pro 版 $20/月,一个月用下来我觉得对前端来说值。


总体来说,Cursor 是目前我用过的 AI 编码工具里体验最好的,Tab 补全和 Composer 已经变成了我日常工作流的一部分。不过它不是银弹,对业务逻辑复杂、注释少的老项目效果会差一些。