深度使用 Cursor 后,我想写一篇文章来科普下这个 IDE,相比 Copilot,因其基于 VS Code 开发,所以在工程代码上下文理解上大大增强。在使用过程中,会收获到大量的惊喜和感叹,情绪价值拉满,这也是我为什么想写这篇文章的原因。 ・ ⌘ ・ 01 AI 能替代程序员写代码吗? ・ ⌘ ・ 02 Cursor 为什么好用? 所有的一切都要从 Cursor 开源(早期版本)和基于 VS Code 二次开发说起,相比 Copilot 以插件形式提供,Cursor 通过深度定制,把工作区上下文理解做到了极致,从智能代码提示迈向了 AI 编辑器关键的一步。 ・ ⌘ ・ 03 工作区上下文理解能力 我用过 Copilot 几个月,后续帐号过期,再加上试用通义灵码等工具后,没再使用了。当时的印象和感觉是,加强版的智能提示。具备一定的上下文理解能力,在单个文件内,代码补全会结合代码块所在位置,来进行提示。在 VS Code 和 IDEA 等主流 IDE 上都有插件支持,使用方便。彼时,就已经有了 Tab 工程师的雏形。 而 Cursor 为了实现更好的体验和更强大的功能,选择在 VS Code 上二次开发(早期源码),带来了强大的工作区上下文理解能力。 写这篇文章时,我准备重新捡起 CoffeeChat 这个开源项目,以把 api.md 转换成 openapi.json 为例,其部分内容为:
几秒钟内,我就生成了可以工作的 openapi 文档,从原来的 Ctrl+C/V 变成了按 Tab。 通过上面的几张图片,我想你可能掌握了 cursor 的生成逻辑:一小段一小段生成,即上图中的灰色字体部分。这符合大多数人的编码风格,先写框架,再填充细节。如果你仔细观察,你会发现其实请求参数和 api.md 中的不太一致。所以,你还需要对该部分进行细节填充: 回顾整个过程,这里让人惊讶的是:
至此,也解答了文章开头所说的问题,AI 编辑器不会代替程序员,而是会成为我们的好帮手,提升我们的工作效率,10倍程序员或许真不是随便说说,让我们接着往下看。 ・ ⌘ ・ 04 一片一片生成代码 当 copilot 还在给你一行一行生成的时候,cursor 已经可以一片一片生成了,而你要做的是:按 Tab 和 Review 生成的代码。 那么,写一个 DB 函数 和 对应的 Unit Test 要多久呢?只需要几分钟。 注意,我们不是写 Demo,而是应用到实际的工作中,需要生成的代码精准,符合本地项目的代码风格。所以,这也是为什么 Cursor 会选择基于 VS Code 进行二次开发,为了获取了更高的自由度! 它会根据你工作区其他 Unit Test 的风格,和相关文件来生成,而不是莫名其妙的风格,这就是所谓 Codebase 能力:你本地代码是一个小规模的训练集(代码不会上传,但训练后的元数据会存储到云端)。 虽然这个例子比较简单,但是比较直观的给我们展示了使用 Cursor 是如何提高开发效率的。在实际项目开发过程中,我们会有一些重复的工作,比如写 UT、或者修改代码替换变量名,增加日志等等,而这些恰恰是最无趣,又恰好是 Cursor 擅长的。 以 Go Warnf 为例,当你还在对手动 %s、%d 等打印参数的类型时,在 Cursor 中只需要按一下 Tab 就能给你自动替换:
・ ⌘ ・ 05 Chat 功能 点击右上角的按钮或者按下 Ctrl+L 快捷键,我们就可以打开 Chat 面板,输入框的左下角部分可以切换大模型,建议使用 gpt-4o 和 claude-3.5-sonnet 效果较好,相当于无需翻墙的 ChatGPT。 另外,如下图所示,我们可以点击输入框左上角的 + 号,或者在左侧点击文件,添加到文件到 Chat 面板中(user.go),当你需要 AI 分析文件的源码时,或者 Code Review 和代码续写时,会十分有用。 ・ ⌘ ・ 06 重构、续写或修复 Bug 当我们选择一段代码后,会显示一个浮动框,我们点击 Edit,此时我们可以让 AI 来帮我们重构代码,续写代码或者进行 Bug 修复: 我们可以点击 Accept 或者 Reject 接受或者取消生成的代码。 ・ ⌘ ・ 07 终端错误诊断 ・ ⌘ ・ 08 总结 Cursor 大火,截止到今日,15天的免费使用到期后,官方已经紧急出了修复补丁,通过绑定机器硬件 ID 来限制无限试用,但是道高一尺魔高一丈,仍然可以白嫖,不管是你想免费使用 ChatGPT,还是想体验一下传说中的 AI 写代码,Cursor 都不失为一个好的选择。 除了 Cursor 之外,国内抖音面向学生群体的豆包 marscode 和 codeium 新出的 windowsurf AI编辑器都值得一试。 前者是国内公司,目前提供了 vs code 插件和云开发环境,而 codeium 则是对个人版用户免费,企业版的价格是 Cursor 的一半,虽然初步体验下来,有所欠缺,但是当某一天我们离不开 Cursor 又面临付费时,多一个选择总是好的。 当然,Cursor 的功能远不止于此,留待读者朋友自行发掘,这里有一个视频,我个人认为介绍的比较全面,可以搜索关键字:Cursor AI Tutorial for Beginners (How I Code 159% Faster) 找到原视频查看学习。 |