Cursor AI:编程世界的新星,如何迅速崛起?

TodoHacker 2024-10-09 13:31:01 阅读 61

在这个大型语言模型(LLM)日益盛行的时代,你是否渴望一款能够将你脑海中的想法直接转化为现实的产品?

虽然完全替代人类编码是不可能的,但最近有一款产品以其灵活性和智能化的自动编码能力,超越了 GitHub Copilot,成为了开发者的新宠。这款产品就是今天的主角 —— Cursor。

在这里插入图片描述

什么是 Cursor?

Cursor 官网:https://www.cursor.com/

The AI Code Editor : Built to make you extraordinarily productive, Cursor is the best way to code with AI.

“AI代码编辑器:旨在让你极度高效,Cursor 是与 AI 共舞的最佳编程方式。”

Cursor 是一款 AI 驱动的代码编辑器,旨在通过其强大的编码能力提升开发者的工作效率。它是 VS Code 的一个分支,专注于打造最佳的人工智能编码体验,同时提供程序员们熟悉的文本编辑环境。

cursor-write-code

编程效率革命的起点

在 2021 年,几位 MIT 的年轻工程师——Michael Truell、Sualeh Asif、Arvid Lunnemark 和 Aman Sanger ,怀揣着改变软件开发行业的梦想,创立了 Anysphere。他们对AI的潜力充满热情,并意识到现有编程工具在调试和重复性代码编写等方面存在诸多低效之处,比如繁琐的调试、重复性代码的编写等。

他们的目标是创造一款能够大幅简化开发过程的AI工具,让开发者能够专注于创新与问题解决,而不是被繁琐的代码维护和优化任务所困扰。

Cursor 的诞生:从构想到现实

Cursor 的开发之旅始于构建一个AI驱动的编码助手的想法。最初,团队尝试了多种将AI集成到编码工作流程中的方法,早期版本的重点是增强开发体验,但在与现有工具和工作流程的无缝集成方面遇到了挑战。

最终,团队决定以 VSCode 为基础进行开发。VSCode 的受欢迎程度、可扩展性和强大的生态系统使其成为构建此类工具的理想平台。通过在 VSCode 上构建,Cursor 能够利用现有的用户群,同时添加强大的AI驱动功能,用于代码建议、调试和整体生产力提升。这一战略转变使得 Cursor 能够更自然地融入开发者的日常工作,成为既实用又具有影响力的工具。

通过将 VSCode 的灵活架构与 Cursor 的 AI 功能相结合,这一转变简化了开发流程,并显著扩展了 Cursor 的功能。

Cursor is a fork of VS Code. This allows us to focus on making the best way to code with AI, while offering a familiar text editing experience.

官方文档表示 Cursor 实际上是 VSCode 的一个 fork 版本,之所以基于其开发,而不是插件形式集成进vscode,创始人之一的 Aman Sanger 是这样解释的:主要是为了实现更深层次的定制。他们希望打造一种与 AI 深度集成的开发体验,而仅靠插件的方式会受限于 VSCode 的插件框架,无法实现他们设想中的完整功能和无缝体验。通过 fork VSCode,他们能够对底层架构进行更灵活的修改,控制用户界面和交互,优化性能,并更好地整合 AI 功能,从而为用户提供一个更流畅和强大的开发环境。

以下是他举的几个具体案例说明:

CASE01: The reason we decided to do this is I think in the future, today, what Cursor can provide and what any of these tools can provide isn’t that much different than, I guess, what you get in VS Code. But it was more of a long-term decision where in the long term, you’re going to need to design just a very different UX that the extensions don’t give you. One story we’d heard is that with Copilot, in order to actually get the multi-line ghost text implemented, it wasn’t actually a part of the extension. I think the team at GitHub had to call up VS Code and have them make a change to the source in order for that extension API to be enabled. That’s what allows for multi-line ghost text completion. And this is scary.

案例01: Aman 提到 Cursor 想要构建的代码编辑器,其主体编辑功能跟市面上流行的编辑器并无什么区别,或许由于 VSCode 的受众是这些编辑器中比较突出的,且 VSCode 以 MIT 协议进行开源,Cursor 才最终决定基于 VSCode 进行开发吧。同时 Aman 也分享了一个故事,说 Copilot 的幽灵多行代码实际上不是 Copilot 插件的一部分,而是 VSCode 官方提供的 API 支持的。也就是说如果 Cursor 想要实现一个交互,而这个交互在 VSCode 的插件规范中无法实现,则需要找 VSCode 官方协商提供,这就很被动,甚至很可能无法实现想要的功能。

CASE02: So Copilot is great for completing the next line, completing the next few lines, but what if you wanted to do a kind of sort of edit, where instead of just completing this line, it changes the line above or delete something. There’s no way that you can do something like that in VS Code, but we have the UI for this that we’ve kind of built out in Cursor.

案例02: Copilot 可以补全接下来的多行代码,但如果想要修改多行代码呢,它做不到,因为插件规范不支持。

CASE03: I do think like in terms of inline edits, which means inside the editor, you can press command K in Cursor and then ask for some kind of modification of the code or ask for a generation of the code. And I do think we have probably the best UX for that because if you look at what someone like Sourcegraph does, I mean, Sourcegraph code is a great product, but they basically have to use the GitHub pull request comment feature in order to do it. And I think like these paper cuts kind of add up over time.

案例03: Sourcegraph 是 vscode 插件生态中非常棒的一个产品,但是它的实现比较复杂,而且这个复杂度在将来可能会增加。因为 Cursor 是 VSCode 的一个 fork ,对整个编辑器的交互有绝对的控制权,针对 “通过 command/ctrl + k 唤起一个对话框,并告诉 AI 想要修改的代码,AI 则执行相关的任务” 这类交互,将会变得简单很多。

让编程变得更简单的魔法

Cursor 在 VSCode 的基础上进行了大量优化,使其在基础功能和用户体验上相比其他 Copilot AI 助手更具优势。接下来,我将简要介绍 Cursor 的核心功能,让你更直观地了解它的强大之处。

Cursor Tab —— 代码自动补全与修改的魔法

Cursor Tab 是一个类似与 Copilot 的编码助手,但它不仅可以补全代码,还能进行代码修改。

举个例子:

cursor-tab

在这个操作中,我想更改函数的参数名,Cursor 帮我完成了以下操作:

推断出我想要的新名字,按下 Tab 键即可采用。推断出我接下来需要修改的代码,并用灰色的"幽灵代码"标注出来,通过逐步按 Tab 键来逐一接受所有修改。当我光标移到另一行时,会弹出一个框展示这段代码的"推断改动",以 diff 的形式呈现,你可按需选择接受更改。

Cursor Chat —— 你的 AI 聊天助手

Cursor 也自带聊天窗口,类似于 Copilot 等 AI 编码助手,你可以向它提出问题。

在这里插入图片描述

与其他产品相比,它提供了以下增强能力:

可选择各大知名 LLM 模型。基于文件作为上下文:

默认情况下是无上下文(右下角的 no context)。通过左上角的添加按钮,可以关联多个文件作为上下文,这样你可以基于多个文件进行提问,比如 “a、b、c 三个文件分别是用来干嘛的?” 或者让它帮你以简单易懂的方式解释某段代码的逻辑。如果你想要直接以整个项目作为上下文,操作也很简单,Mac 中是 Command + Enter 直接关联上下文为整个项目。

Cursor Composer —— 快速生成与修改代码的利器

Cursor Composer 是整个产品中最接近程序员的功能。结合聊天助手的能力,你可以让它根据你的指示进行代码操作,包括更改代码逻辑、修复 lint 报错,甚至创建或删除文件等。

cursor-composer

Cursor AI Review —— 你的 AI 代码审查助手

在这里插入图片描述

AI Review 可以基于真实的审查模式进行代码审查,具体操作分为简单的 2 步:

输入你的审查要求,如:“关注性能”、“关注代码隐患”、“关注代码可读性”。选择你的审查操作:

Review Working State(审查工作状态):这将审查你未提交的更改,即 VSCode 侧边栏中的 changes、staged changes。Review Diff with Main Branch(审查与主分支的差异):这将检查你当前的工作状态和主分支之间的差异。Review Last Commit(审查最近一次提交):这将审查你所做的最后一次提交。 如果你的项目很久没有打开过,可以点击 Refresh Git Context(刷新 git 信息)。

具体效果,Cursor 官方文档中展示了如下图示:

在这里插入图片描述

上面的审查结果显示,当前项目中有 3 个代码块新增了 3 个命令,但这三个命令的执行内容却完全相同,这不仅造成了冗余,还增加了维护成本。试问,用户该用哪个命令呢?

注:目前,Cursor 的最新版本是 0.40.4 ,AI Review 功能还处于 Beta 阶段(接下来的 long context chat 也是处于 beta 阶段),如需开启,可以按照 settings -> cursor setting -> beta 找到开关,并将其开启,具体如图所示:

在这里插入图片描述

在这里插入图片描述

Cursor Long Context Chat —— 长上下文聊天的魅力

开启长上下文后,你可以在聊天框中看到这个下拉选项:

在这里插入图片描述

同时,你在输入自己 prompt 之后,也可以通过 Ctrl/⌘ . 来回切换两个选项。

长上下文聊天允许你将整个文件夹作为上下文包含在内,因为受支持的模型具有更大的上下文窗口。

切换成长上下文之后,模型选择仅限于支持长上下文的模型:

gpt-4o-128kgemini-1.5-flash-500kclaude-3-haiku-200kclaude-3-sonnet-200kclaude-3-5-sonnet-200k

Cursor Custom API Keys —— 自定义各 AI 平台的 API Keys 以自费获取 AI 能力

默认情况下,Cursor 在试用期之后,或超出使用上限时,会提醒你通过订阅套餐来继续使用。(以下是 Cursor 按月付费的订阅说明)

在这里插入图片描述

但令人惊喜的是,他们也提供了一个入口,你可以通过配置自己的 AI API Key 来继续使用 AI 能力(当然,自己配置的需要自己向 GPT 等官方支付费用)

在这里插入图片描述

Cursor Shadow Workspace —— 影子工作区

除了以上的功能,Cursor 还隐藏了一个功能,叫做影子工作区,该功能默认是关闭的,因为会占用大量内存。开启步骤为:Cursor->Settings...->Vs Code Settings->Cursor->Cursor > General: Enable Shadow Workspace注意:这里的入口不再是 Cursor Settings 了

在这里插入图片描述

在这里插入图片描述

影子工作区的用途

简单来说,当你暂时离开当前项目去处理其他事务时,它能帮助你继续编码。具体动作分为以下两块:

后台处理: 当你把当前项目最小化或切换到其他工作区时,Cursor 会自动读取你刚刚编写的代码,并在影子工作区中执行一些自动化任务,比如 Lint 报错修复或逻辑优化。这些更改不会直接作用在磁盘上的文件,而是保存在内存中的影子工作区, 也就是不会影响你离开时的任何一行代码。恢复时的 diff 提示: 当你重新打开或切换回该项目时,如果它帮你优化了一些代码,Cursor 会显示其保存在内存中的更改,并以 diff 的形式供你确认。你可以决定是否接受这些更改,接受后,才会将它们写入磁盘中真实的代码文件中。

影子工作区的原理

简单来讲,就是文件的分层管理。影子工作区在处理文件时,分为两部分:

它帮忙优化的文件: 这些文件的编辑工作都是在内存中进行的,即它在内存中拷贝了一份相关文件,并进行相应的调整。上下文文件读取(除优化文件之外的文件): 如果某些文件没有被更改,但需要读取它们的上下文,Cursor 会从磁盘上读取这些文件。这种方式确保了项目状态和离开前保持一致,只有那些被更改的文件才会被代理到影子工作区中并进行内存操作。

简而言之,部分文件会从磁盘读取(未修改的文件),而修改过的文件会被代理到内存中读取并进行处理,最终修改经过用户确认后才会更新覆写到磁盘上的实际文件中。

为什么即使我开启了影子工作区,好像没啥反应?

这个实际在官方的博客中提到了:Shadow Workspace: Iterating on Code in the Background 中的【…But: Walled Gardens】章节中有相关介绍。

For Linux, the FUSE folder proxy works great, but most of our users use macOS or Windows, neither of which have a built-in FUSE implementation. Unfortunately, shipping a kernel extension is also out of question: on Macs with Apple Silicon, the only way for a user to install a kernel extension is to reboot the computer while holding down a special key to enter recovery mode, and then downgrading to “Reduced Security”. Unshippable!

Since FUSE partially needs to run inside the kernel, third-party FUSE implementations like macFUSE suffer from the same impossible-to-get-users-to-install-it problem.

在"Walled Gardens"这一章节中,文章提到某些操作系统 (比如 macOS 或 Windows)对系统的控制较为严格,它们限制了用户对内核和文件系统的直接修改权限 。这意味着为了让影子工作区在这些系统上工作,你可能需要安装一些额外的组件或工具,比如内核扩展虚拟文件系统驱动,才能实现影子工作区的功能。

通俗来讲,有些操作系统就像"围墙花园"(Walled Garden),它们把用户限制在自己允许的范围内,用户无法轻易改变系统底层的行为。为了让影子工作区(比如虚拟文件夹和内存中的文件管理)在这些操作系统上正常运行,你需要额外安装一些东西,比如调整系统的文件管理方式或者安装驱动程序,才能达到所需的效果。

更简单的来说,在这些限制较多的操作系统 (比如 macOS 或 Windows) 上,影子工作区功能 不是开箱即用的 ,你需要额外安装一些工具来提供支持。

Cursor 的爆红:几大关键事件回顾

最近几周,原本默默无闻的 Cursor 因几条推文迅速走进了大众视野,成为了开发者们提升效率的热门工具。接下来,我将简单回顾一下这些推动 Cursor 爆红的关键时刻。

Andrej Karpathy 分享了它对 Cursor 使用的感受

在这里插入图片描述

Andrej Karpathy 在一篇 Twitter 帖子中分享了他对 Cursor 的使用感受。他提到,使用 VS Code、Cursor 和 Sonnet 3.5 相比 GitHub Copilot,编程体验变得更加高效。他发现自己在编程过程中更多地使用自然语言进行提示,然后审查和编辑生成的代码差异(diffs)。他称这种方式为"半编程",即先写一部分代码或通过注释提示推断他的计划,然后通过按 Tab 键完成代码的生成。

有时,他能直接获得一段长达 100 行的代码差异,这比过去手动编写代码要快得多。他表示,现在的编程过程与几年前相比简直是天壤之别,过去只能"无辅助"地编写代码,而如今他已无法想象回到那样的状态。

原文链接:https://x.com/karpathy/status/1827143768459637

Gumroad 创始人 Sahil Lavingia 觉得 Cursor 有趣 10 倍以上

在这里插入图片描述

原文链接:https://twitter.com/shl/status/1817893179414213029

8岁的小女孩利用 Cursor 45 分钟实现了一个聊天机器人

在这里插入图片描述

原文链接:https://x.com/rickyrobinett/status/1825581674870055189

从默默无闻到高增长的背后:Cursor 的发展历程

Cursor 的母公司 Anysphere 成立于 2021 年,最初并未受到太多关注。然而,随着其不断迭代和优化的编程工具 Cursor 开始逐渐获得市场认可,公司发展速度显著加快。

在 2023 年,Anysphere 收到了来自 OpenAI Startup Fund 的 800 万美元融资,这进一步推动了 Cursor 的技术进步。到 2024 年,Cursor 成功完成了 6000 万美元的 A 轮融资,投资方包括 Andreessen Horowitz、Thrive Capital、OpenAI、Jeff Dean、Noam Brown 以及 Stripe、GitHub、Ramp、Perplexity 等。这一轮融资不仅大大提升了 Cursor 的市场估值,使其达到 4 亿美元,也为其未来的扩展提供了有力的资金支持。

与此同时,Cursor 的官网流量在过去几个月内呈现爆发式增长。(以下数据来源于 similarweb.com,仅供参考)

在这里插入图片描述

在这里插入图片描述

据数据统计,Cursor 到 2024 年中期已拥有超过 40,000 名用户,其中不乏大型企业和研究实验室。这样迅猛的增长反映了市场对 AI 编程助手的需求日益增加,也进一步巩固了 Cursor 在这一领域的领先地位。

总结:Cursor 的成功之道

Cursor AI 最近爆火的原因主要可以归结为以下几点:

大规模融资:Cursor AI 近期完成了一轮6000万美元的融资,公司的估值达到4亿美元。这笔资金支持了其产品的快速扩展,并引发了广泛的市场关注。行业领袖的赞赏:包括前特斯拉自动驾驶负责人 Andrej Karpathy 在内的科技领袖,对 Cursor AI 表示了极高的评价。Karpathy 在使用了 Cursor 后,称其比 GitHub Copilot 更具优势,特别是在自动代码生成和代码优化方面。这一事件引发了更多开发者和技术圈的关注,进一步推动了 Cursor 的流行。产品功能的提升:Cursor 集成了 GPT-4 、Claude 3.5 等主流的 AI 模型,并且凭借其强大的代码补全、代码优化和快速响应能力,赢得了开发者的青睐,尤其是在和 Anthropic的Claude 模型结合使用时表现优异。社区效应:不少科技博主和开发者开始在社交媒体上积极推广和讨论 Cursor 的使用体验,这进一步推动了其热度上升。

Cursor 的爆火不仅得益于资本和技术的支持,更重要的是它顺应了 AI 辅助编程的趋势,以更贴近人类的方式进行编码,成为了许多开发者提高效率的首选工具之一。尽管资本的推动不容忽视,但随着越来越多用户分享 Cursor 的强大和便捷,我们也不禁思考:“更强大的基础能力支持 + 更便捷的交互体验” 是否也是一种有效的推广方式。对于独立开发者、创业者,甚至一些兼职观望者来说,围绕某一核心问题,努力提升技术能力和用户体验,或许是值得重点关注的方向之一。

参考资料

[1] Cursor : https://www.cursor.com/

[2] Cursor.so: The AI-first Code Editor — with Aman Sanger of Anysphere : https://www.latent.space/p/cursor

[3] Cursor Tab : https://docs.cursor.com/tab/overview

[4] Cursor Chat : https://docs.cursor.com/chat/overview

[5] Cursor Composer : https://docs.cursor.com/cmdk/overview

[6] Cursor AI Review : https://docs.cursor.com/advanced/ai-review

[7] Cursor Long Context Chat : https://docs.cursor.com/chat/overview#long-context-chat-beta

[8] Cursor Custom API Keys : https://docs.cursor.com/advanced/api-keys

[9] Cursor Shadow Workspace : https://docs.cursor.com/advanced/shadow-workspace

[10] Andrej Karpathy’s twitter : https://x.com/karpathy/status/1827143768459637

[11] Sahil Lavingia’s twitter : https://twitter.com/shl/status/1817893179414213029

[12] What can an 8-year-old build in 45 minutes with the assistance of AI? : https://x.com/rickyrobinett/status/1825581674870055189

[13] We Raised $8M From OpenAI : https://www.cursor.com/blog/openai-fund

[14] We Raised $60M : https://www.cursor.com/blog/series-a

关于我们

TodoHacker是一群敢于构建灵感,敢于尝试,敢于创造的人。作为 TodoHacker ,我们分享 TodoHacker 们的故事,并借鉴他们进行尝试,努力构建自己的产品、社区、文化。。。


声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。