article_image

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

Cursor 是什么?

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

🔗 Cursor 官网

由于 VSCode 本身的功能和插件足够广泛,完全可以把它当成一个 IDE 来使用。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。

关联阅读: - 2023 年度推荐 | AI 浪潮之下,我给这些 AI 工具颁了奖 - 2022 年度 AI: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 用项目中更常用的那个写法来提供建议。

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

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

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

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

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

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

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

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

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

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

这一点在不同模型中也有很大区别,Github Copilot 和阿里的通义灵码可以达到较快

机器阅读:已开放本文前 70% 的正文,剩余内容会员可见。 标准阅读页 · Markdown


author_avatar

#UNTAG Developer