在最近刷到了挺多推销 Cursor IDE 的视频和文章,大多都将其效果描述得十分夸张。然而自己是 GitHub Copilot 内测时期就开始使用的用户了,因此很想将两者进行对比。在此记录一下对于 Cursor IDE 的简单体验。

首先 Cursor IDE 本身是基于开源的编辑器 vscode 的,因此相关的配置和插件都可以一键导入并自动加载,但是要注意的是 Cursor IDE 本身添加了许多自定义快捷键用于快捷的 AI 代码编辑,因此相关的一些插件可能会有冲突,推荐不导入 vscode 的插件配置,从干净的配置重新开始;况且在使用 Cursor IDE 时有很多原有的操作都不需要了,很多插件也就失去了作用。

我尝试使用 Cursor IDE 进行了一个简单 HTML/JS 2d 游戏的从零构建,这与大多数相关推广的视频和文章类似:“用 AI 从 0 构建了 xxxx”。当然,很可能这套模式对于我这个项目不太擅长,因此我的体验范围十分局限,仅供参考。

首先是项目的从零搭建,Cursor IDE 并不能帮你构建项目目录结构,在 AI 给出初始的建议后,你可以按照它的提示手动创建目录和文件。关于初始的一些代码内容,当你首次想要将修改应用到文件时,并不会自动选择对应的文件进行修改,而是选择你当前打开的文件;因此在项目初始阶段,有一些类似于初始绑定的操作需要你手动进行,当然后续就不再需要了。考虑到项目初始阶段结构并不复杂,这一点不难接受。

后续你可以通过与 AI 对话的方式,逐步修改项目的代码,逐渐完善项目。AI 会根据你提出的需求,整理出代码修改建议以及这样修改的原因,通过简单点击的 Apply 按钮,AI 便可以通过修改建议以及现在的代码生成一份 patch,你可以 review 各处的代码修改,选择 Accept 或是 Deny。基本上自己的工作变成了 review 代码。与 Copilot 不同,这里的修改建议是项目全局的,也就是可以跨文件的,在应用修改让你 review 时也会自动切换到相应的文件;相比下来,Copilot 确实只停留在了“自动补全”上。

操作基本都符合直觉,但是要注意的是,如果你没有完全按照 AI 的建议进行修改调整,比如在应用 AI 的修改建议后又在此基础上进行了调整,那么在同一个对话上下文下,它并不能感知这个修改;当你后续提出其他需求后,生成的修改建议中会默默将你的修改替换成 AI 建议的形式。因此在体验过程中,如果你在途中有了别的修改想法,那么要么告诉 AI 让其生成修改,要么重新发起对话,让 AI 忘记之前固执的修改建议。从这一点问题上来看,也能够理解出现这个问题的原因:Cursor IDE 显然不可能在上下文中引入所有的项目文件,因此需要在上下文中手动让 AI 感知你的变更,这也是体验过程中比较难受的一点。

随着代码量的提升,如果修改建议涉及的文件较大且分布这个文件的不同位置,Patch 生成需要等待较长的时间,此时会感到整个流程被阻塞,很不顺畅;当然,也可以让 AI 将代码进行拆分,避免出现单个文件过大的问题。经拆分后,后续处理都会变快很多。

最后,AI 生成的代码当然不是完美的,会有各种各样的问题,我尝试在体验过程中尽量不阅读代码,而是全程通过反馈问题让 AI 自行处理。在处理的过程中,AI 会生成一些日志代码,让你尝试运行后查看日志反馈给它以定位问题的位置,这种体验还是挺自然的。

总的来说,Cursor IDE 并没有推广视频和文章里面展现的那么夸张,但是相较于 Copilot 来说确实有提升。与其说切换到 Cursor IDE 进行项目开发,不如说更期望 Copilot 能够借鉴 Cursor IDE 的功能进行改进。目前来说 Cursor IDE 的主要功能体现在不用手动 Copy/Paste,而是通过 AI 生成 Patch 让用户来 Review,配合项目范围内的上下文感知,展现出了不错的效果;但是包装成“AI IDE”这一概念,感觉还是有点夸大其词了。