article_image

最近我试用了一下 Cursor,先说结论:这是一个我会心甘情愿为它付费的产品。

Cursor 是什么?

Cursor 是什么呢?从我的角度来看,这是一个基于 VSCode 二次开发的、深度结合了 AI 特性的代码编辑器。

🔗 Cursor 官网

由于 VSCode 本身的功能和插件足够广泛,完全可以把它当成一个 IDE 来使用。Cursor 基于它二次开发,自然也是站在了巨人的肩膀上。


Cursor
Cursor

由此带来的好处是,你可以无缝的导入 VSCode 里的插件、配置、主题,完全不会有陌生感。甚至可以用 Github、Microsoft 账号同步你在 Cursor 里的配置回到 VSCode 里。

坏处则是,你如果习惯用其他编辑器开发,Cursor 目前没有提供可供其他编辑器使用的 AI 插件。而且 VSCode 的功能本身非常多,也遇到了一些插件与 Cursor 发生冲突和不适配的情况。

Cursor 不是插件,而是编辑器

现有的 AI 编程助手已经有多家巨头在竞争了。光我试用过的就有许多:海外产品有 Github Copilot、Amazon CodeWhisperer,国内产品有字节的豆包 MarsCode、阿里的通义灵码、讯飞的 iFlyCode 等等。

在所有的这些 AI 编码助手中,Github Copilot 本是当之无愧的第一,这样的优势来源于 Github 本身得天独厚的代码库优势(作为数据源),以及微软提供的 Azure + OpenAI 模型(作为云和模型)。两者一个确保了质量,一个确保了速度。

所以在 2022、2023 年我都在年度推荐中给 Github Copilot 做了详细介绍,我一度认为其他家很难超越 Github Copilot。

关联阅读:

有了 Github Copilot 打样,其他 AI 产品纷纷推出自己的 AI 编码插件,用法大同小异:

  • Tab 补全
  • 自然语言生成
  • 对话式提问

它们大多以插件形式提供,有且只有这些功能。

Cursor 之所以不做插件,它在文档中也提到了原因,是因为它需要对 UI 有更多的控制权、Cursor Tab 等功能无法以插件形式呈现。

而 Cursor 本身,在数据源和模型都没有做出巨大突破的情况下,实现了弯道超车,获得了极高的好评。它凭借的是什么呢?

我认为是对开发者习惯的极致观察

Cursor 到底比其他编程助手好在哪里?

我举几个例子,Cursor 到底是如何直击用户痛点的。

Codebase:Cursor 会在你提问时,自动加入当前代码库作为参考文档。Cursor 在展示视频中给出的效果是,你可以主动 @特定文档 来参考某段代码。

但实际上在首次提问时,Cursor 会完整扫描整个文件夹里的文件作为数据源支撑,这样多数情况下,你不必在 Chat 环节自己检查和复制关联的代码进去。这样不仅简化了手工的操作,也能更贴合你的实际开发环境。而“引用多段代码”“遵循现有写法”恰恰是开发者对 AI 最迫切的需求。

举个例子,Vue 3 的语法中有两种写法 <script><script setup> ,不同写法的代码在结构上有所不同。如果你不给出任何参考去问 ChatGPT,ChatGPT 可能会随机给出一种答案,也许就是你不想要的。而有了 Cursor,它总是可以借助 Codebase 用项目中更常用的那个写法来提供建议。

官网关于 Codebase 的展示

这几天 Slack 读者群里有读者 @arthurY 提到,可以用 Cursor 实现类似知识库 RAG 的效果,可以把文件放进代码库中用 Cursor 打开,让其自动扫描文件后进行 AI 提问。

我经过实验后发现,Cursor 的 Codebase 确实可以做到类似本地知识库的效果。

以往建立知识库都是需要加一层 RAG,从数据库里提取数据、形成 chunk、喂给 AI 作答才能实现的。Cursor 实现了一个简易版的过滤和回答。Cursor 虽然在文档里没有提到 RAG 这个说法,但 Cursor 提供的 @Codebase 逻辑确实非常接近 RAG 1 。所以当做本地知识库是完全可行的。

但 Cursor 的 Codebase 功能与 RAG 功能还有一些区别,由于 Cursor 提供的 Chat 功能上下文长度为 20000 字符,特别巨量的知识库在检索完如果超出上限的话,可能还是不太够用。

主动纠错能力:这个功能在 Cursor 官网叫 Smart Rewrites 功能(智能重写),比如你在 CSS 里缺了引号、缺了逗号,都能帮你纠正。另外还能解决一些“不是错误的错误”。

比如下图就是一种“推断”而非“纠错”。像是有一位老教授一直在旁边实时批改你的代码,一边说着“这里可以优化”“那里这样写更好”,一边就把示例摆在你面前了。

再加上非常方便的一键 Apply + 自带审阅功能,让 Code Review 也变成一件赏心悦目的事情了。


更主动的纠错能力
更主动的纠错能力

AI 纠错:在代码出现明确报错的时候,鼠标移动到错误上,会在错误信息这里显示一个 AI Fix 按钮,点一下就会走 Chat 窗口,自动带上代码和报错信息,综合起来给出建议。

代码“报错”时,往往是开发者最需要帮助的时候,而且也恰恰是 AI 最擅长的功能。这项功能在阿里的通义灵码里也有类似的体现,我觉得是一个很好的 AI 入口。每当发现这样的功能的时候,我就不禁感叹:“Cursor 加 AI 的地方真是太对了”。


AI Fix
AI Fix

“快”:Cursor 响应速度极快。有时候不需要你按下 Tab ,AI 结果就直接展示了。“快”对编码体验的增强实在是太大了,因为越快越不需要过脑子。看到代码只需要大致审阅一遍 AI 提供的代码,就可以直接上屏了。如果迟迟不出 AI 提示,就需要等待响应、或者转为自己编写的逻辑了。

这一点在不同模型中也有很大区别,Github Copilot 和阿里的通义灵码可以达到较快的响应速度,其他工具要么是响应缓慢,要么是干脆不出提醒。这可能与模型的选用有关,Tab 补全的模型通常是较小规模的模型,与对话用的通常不是一个模型。而 Cursor 用的就是他们自家的 Cursor-small 模型,在响应速度上,体感比 Github Copilot 更快。

“快”还体现在快捷键上,Cursor 最常用的操作是 Ctrl + K “生成代码”和 Ctrl + L“进入对话”。你也可以手动选择代码右键添加到 Chat 中。

Cursor 没有做什么很重要

正如我之前所说,Cursor 其实没有在 AI 模型上发力。

实际上 Cursor 在 Chat 上用的甚至还是 Claude 3.5 和 GPT-4o 模型,只有 Tab 补全用的是自家 Cursor-small 模型。

所以,其他模型做不到的回答,Cursor 还是做不到。如果仅凭 AI 模型,在一些冷门插件的使用问题上,ChatGPT、Copilot、Cursor 缺乏预训练的知识,都需要多次提问、提醒、联网才能给出比较满意的答案,Cursor 并没有太大优势。

现有的 AI 插件大多是 AI 模型厂商为了抢占开发市场提供的插件方案,以 Copilot 为蓝本进行的插件开发。而 Cursor 却是从开发者助手的角度提供的功能。

而 Cursor 做的是在贴合开发者需求的基础上,进行的体验优化。这些可能会被大厂视作“长尾需求”的功能,恰恰是最命中开发者需求的地方。

小结

Cursor 确实给我提供了独特的 AI + 编辑器体验,目前最大的核心功能是 Codebase,然后在细节上围绕着 AI 添加各种各样的快捷功能。

但我其实能感受到,Cursor 之所以那么好,很大程度上是来自于 VSCode 的底子好,给它加分了不少。如果 Cursor 真的从头去开发一个独立的 AI 编辑器,也许会因为缺失 VSCode 众多好用的插件而中道崩殂。

Cursor 目前表现优异且口碑良好,都是建立在对开发者的关怀上,围绕着真实用户的需求做功能,是做出好产品的一条捷径。

Curosr 一个月 20 美元的 Pro 版本确实昂贵。毕竟 Copilot 也才 10 美元/月、国内的代码助手多是免费的。但我的观点还是跟推荐 Copilot 时说的一样,“相比它带来的体验,这个价格不算什么”。

如果确实不能接受这个价格,也可以先考虑其他 AI 代码助手,先尝试感受下 AI 辅助编码的效果,再去领取一下 Cursor 14 天试用,应该能体会到 Cursor 带来的开发体验质变。


  1. 关于 Codebase 的 说明 - Cursor

author_avatar

#UNTAG Developer