//
有多来越多的人开始从Github Copilot转向Cursor,为什么Cursor会这么受欢迎呢?对于AI辅助编码,什么样的能力才是最重要的?其实很多推荐Cursor的作者都没有说明白,Cursor到底比Github Copilot强在哪里。
从本质上讲Cursor主要优势体现在两个方面:
代码修改能力
上下文引用能力
代码修改能力: Cursor的核心优势
想象一下,你正在写一篇文章。"插入"就像是在文章末尾添加新内容,而"修改"则是对已经写好的部分进行调整和改进。在编程中也是如此:
"插入代码"就像是在程序末尾添加新功能
"修改代码"则是对现有代码进行优化或修正
这两种操作带来的编码体验是天差地别的。有了修改能力,你就像有了一个随时待命的编程助手,可以帮你快速调整和完善代码,而不仅仅是在末尾添加新内容。
这一核心优势不仅使Cursor在功能上更加强大,还让整个编码体验更加流畅和高效。
Github Copilot的局限性
Github Copilot 主要基于上下文进行插入代码的操作。虽然这已经很有帮助,但它的功能仅限于追加新代码。
在 Github Copilot 官方的例子中:
你需要在JavaScript文件中输入函数头:
function calculateDaysBetweenDates(begin, end) {
然后GitHub Copilot会自动建议提示的其余部分。这样的操作只是追加了一段代码,并没有修改当前的代码。
Cursor的全方位编辑能力
相比之下,Cursor不仅可以插入新代码,还可以直接修改现有代码。
这种能力体现在以下几个方面:
1. 多行编辑: Cursor能够根据当前的代码上下文同时建议多行代码的修改,你要做的就是按下Tab键,让Cursor帮你修改就可以了。
这种丝滑的体验真的让你感觉到像是有一个人在跟你一起写代码。
2. 内联编辑: 通过使用Ctrl/Cmd K快捷键,你可以选择要编辑的代码块,然后在提示栏中输入修改指令。Cursor会根据你的指令智能地修改选中的代码。
如果觉得Cursor修改后的代码符合预期,直接点击Accept就可以了,这种交互方式也是大家感觉使用Cursor非常顺手的原因。(主要还是Github Copilot不支持修改,没办法提供这种体验)
3. 智能预测: Cursor能够智能预测你下一步的代码意图,并给出相应的建议。
这个例子中你修改了updates变量的名称为updatesToServer,Cursor就会预测下面的updates变量也应该更新为updatesToServer。
所以在你修改了代码的某个地方之后,Cursor会自动提示你其他地方的代码也需要同步修改, 所以这时候你就只需要一路的Tab按下去就行了,爽到飞起。
4. Composer功能: 虽然目前还处于Beta阶段,但Cursor的Composer功能已经展现出同时编辑和生成多个文件的能力,这在复杂项目中尤其有用。
这种全方位的编辑能力使得Cursor在使用体验上远超Github Copilot,让开发者真正感受到"起飞"的感觉。
上下文引用能力: 更直观,更强大
在AI辅助编码中,准确理解和利用上下文信息至关重要。Cursor在这方面也表现出色,提供了更直观、更强大的上下文引用能力。
Cursor的@符号引用
在Cursor的AI输入框中(如Cmd K、Cmd L或Terminal Cmd K),你只需输入@符号,就会弹出一个建议列表,显示可引用的上下文信息。这个列表会根据你的输入自动过滤,只显示最相关的建议。
可供引用的上下文选项清晰明了,用户一看就知道每个选项代表什么样的上下文信息。并且这些选项基本覆盖了日常开发中所有可能用到的上下文信息。
其中 @Codebase 更是提供了全局代码的检索能力,Cursor会提前对你的项目代码进行Indexing处理,并把相关的索引信息存储到本地(Copilot则是依赖Github的API进行远程检索)。
Github Copilot的复杂引用方式
相比之下,Github Copilot提供了Chat participants和Chat variables两种上下文引用方式,分别使用@和#符号。这种设计不仅增加了使用的复杂性,命名方式也不够直观清晰。
与Cursor相比,GitHub Copilot能提供的上下文选择范围也比较有限,无法达到Cursor那样全面的覆盖。
Chat participants:
Chat variables:
值得一提的是,Github Copilot直到今年初才跟进了多文件上下文引入的功能。从Github的更新日志中可以看出,他们在这方面还有很多需要向Cursor学习和借鉴的地方。
总结来看,Cursor通过其强大的代码修改能力和直观的上下文引用功能,为开发者提供了一个比Github Copilot更高效、更智能的AI编码助手。如果你正在寻找一种能真正提升编码效率和质量的工具,不妨尝试一下Cursor。它可能会让你体验到前所未有的编码“起飞”感觉!
关于Cursor
最后再来看一下Cursor背后的公司——Anysphere。
根据网站介绍,Anysphere 是一家应用研究实验室,致力于构建极其高效的人机交互系统。
他们正在构建未来的工程师:一个比任何单个工程师效率高出一个数量级的人机交互程序员。这种混合工程师将毫不费力地控制他们的代码库,并且不会出现低熵击键。他们将以自己的判断速度进行迭代,即使在最复杂的系统中也是如此。通过结合人工智能和人类的智慧,他们将比最好的纯人工智能系统更聪明、更精通设计。
Anysphere是一群研究人员和工程师,构建软件和模型,在有用和可能的边缘进行发明。他们的工作已经改善了数十万程序员的生活。
Anysphere的创始人是四名MIT学霸,Aman、Sualeh、Michael、Arvid,并在2023年9月1日获得OpenAI的800万美元融资。
2024年8月22日,Anysphere完成了新一轮6000万美元A轮融资,投资方包括Andreessen Horowitz、Thrive Capital、OpenAI、Jeff Dean、Noam Brown 以及 Stripe、Github、Ramp、Perplexity 和 OpenAI 的创始人以及许多优秀人士。
同时,Anysphere也宣布了一系列进展:客户已超过 40,000 家,其中包括一些世界上最具创新精神的初创公司、著名的研究实验室和有价值的企业。
Anysphere组建了一支出色的工程师和研究人员团队,他们曾获得过 IMO/IOI 奖牌、建立了著名的 OSS 项目并发表了重要研究成果。Anysphere共同构建了包括 SOTA 下一个编辑预测模型、数十亿文件检索系统和通过推测推理实现的快速代码重写等系统。
Cursor到底有多好用?可以看一下例子:Cloudflare副总裁Ricky Robinett的8岁女儿,她在 45 分钟内用Cursor搭建了一个聊天机器人。
在融资的第二天,OpenAI联合创始人、前特斯拉AI高级总监Andrej Karpathy,在X上分享了他对Cursor的评价:
“编程变化太快了……我再次尝试使用 VS Code Cursor + Sonnet 3.5 代替 GitHub Copilot,我认为现在这是一个净胜利。仅从经验上讲,在过去的几天里,我的大部分“编程”现在都是用英语编写(提示,然后检查和编辑生成的差异),并进行一些“半编码”,即编写您想要的第一段代码,也许对其进行一些注释,以便 LLM 知道计划是什么,然后按 Tab Tab Tab 完成。有时你会得到一个 100 行的代码差异,这在以前可能需要 10 多分钟。
我仍然认为我还没有充分习惯所有的功能。这有点像重新学习编码,但我基本上无法想象现在回到“无人协助”的编码方式,而这在大约 3 年前是唯一的可能性。”
很快,Cursor便名扬天下了。
END.
延伸阅读