引言
最近论坛和 Twitter 上多了很多关于 Cursor 的讨论,其实我在 Cursor 刚出时就已经测试过,但当时的 Cursor 跟 Copilot 比并没有什么太大区别,所以很快就不再关注。
最近一次 Cursor 重新出现在我的视线中,是在 AI Engineer World’s Fair 2024,OpenAI的工程师在展示时暴露了他的常用工具:
- Arc 浏览器
- Warp 终端
- Cursor 编辑器
OpenAI 工程师都宁可用 Cursor 而不是 Copilot,必然有其过人之处,于是我又重新下回来体验了一下,体验确实是完胜 Copilot。
上手
首先说明,Cursor 是基于 VScode 的二次开发,因此你可以将 VScode 中的配置和插件一键迁移过来,完全 0 迁移成本和学习成本。
Cursor 为什么是神
首先,是犯下傲慢之罪的 GPT4-o,它是 Copilot 唯一指定的模型,但是它的代码能力显著落后于 Sonnet-3.5,而 Cursor 能调用 Sonnet-3.5,这已经算得上一大压倒性优势。
另外,当你觉得 Sonnet-3.5 不行时,Cursor 也能切换 GPT4-o 或两个老款的超大杯模型,这一点上 Cursor 完胜。
其次,是犯下懒惰之罪的 Copilot,即使我们使用 @workspace 功能,Copilot 依然很难找到正确的文件,这是因为 Copilot 在检索文件时,是基于字符串的 Jaccard 相似度进行比较(该信息来源于下面链接中关于Copilot的逆向分析)。
而 Cursor 在使用 @Codebase 功能时,会先对当前代码仓库计算 Embedding,检索时计算的是 Embedding 向量的相似度,因此 Cursor 检索文件的相关性会明显更高。
在该例子中,Copilot 完全错误,而 Cursor 非常精准地找到了正确答案。
Cursor 的一些隐藏技巧
像 Copilot++ 之类的功能,一上手就能体验到差异,因此不再赘述,此处仅介绍一些隐藏的技巧。
1. 附加文档
在让 LLM 写代码时,一个常见的问题就是,LLM 给出的代码有时会是过时的写法,一个是因为老代码在训练数据中的占比更大,另一个是大模型的知识库有截止日期,例如GPT-4o的知识库截止日期是2023年10月,如果一个库在2024年出现了 API 上的变动,那它是不可能知道的。
Copilot 对此束手无策,但 Cursor 不同,你可以在聊天时 @文档名,这样它也会对文档的Embedding进行检索(如果没有你的文档,可以在设置里添加自定义文档的网址)。
例如在下面的例子中,我们@Pytoch,那么它就精准地将 nn.RNN 的文档页面添加到了检索文件中,回答的效果也非常好,有效避免了幻觉。
2. 生成 Git Commit Message
在 Copilot 中,在提交 git commit 时会有一个按钮,一键就能生成 commit message,虽然效果很差,但也比没有强。
Cursor 没有一个这样的显式按钮,很多人就觉得无法缺少该功能,其实不然。
这里其实有一个小技巧,那就是 @Commit,然后 Cursor 就能自动将 diff 添加到聊天中,此时你再添加自定义 prompt 即可,这里我用的是 Aider 的 prompt,效果很不错。
You are an expert software engineer.
Review the provided context and diffs which are about to be committed to a git repo.
Review the diffs carefully.
Generate a commit message for those changes.
The commit message MUST use the imperative tense.
The commit message should be structured as follows: <type>: <description>
Use these for <type>: fix, feat, build, chore, ci, docs, style, refactor, perf, test
Reply with JUST the commit message, without quotes, comments, questions, etc!
3. 购买
虽然 Cursor 有诸多好处,但最让人望而却步的是它的价格,每月 $20 实在不便宜,但淘宝上可以让人代充(70左右/月),或者拼车(3人30左右/月)。
但是拼车存在一些问题:
- 有人会将账号再分享给其他人,而 Cursor 对多人使用查得比较严,有时用着用着就用不了了
- 有人会疯狂使用 chat 次数,可能是商家或用户在逆向成 API 转手卖钱,这样虽然一个月有5000次chat,但自己可能也用不了多少次
- 以上的情况一旦发生,商家良心好给你换个账号,良心不好就没下文了
这也是我写这篇帖子的原因,也是希望佬友们看到 Cursor 的好处,论坛内部拼车还是更值得信赖,大家发挥聪明才智,把它的价格打下来(走正规途径,非不良导向 )