了解 Cursor
简单来说,Cursor 是一款全方位集成 AI 的代码编辑器,基于 VScode 打造。
如果你想了解它的常用功能,可以看看官网的详细介绍:https://www.cursor.com/cn/features
在 Cursor 的设置里,有一些常用的选项:

如果是公司内部使用,可以先开启隐私模式:

除了上一个版本的编码助手 copilot 提供的 TAB 补全和问答功能,Cursor 还增加了 agent 模式,能独立完成特定任务。

一般推荐使用 claude-3.5 或 claude-3.7(关于 claude 3.7 的实测:在实际编程任务中的表现如何?,它刚发布不久,效果各有看法),
在 Agent 模式下,它可以执行命令行脚本、修复 lint 错误、运行构建并解决相关错误,甚至能自主进行单元测试并修复问题。
你还可以开启 yolo 模式,这样在运行命令行时就不需要二次确认。为了安全起见,还可以配置一些禁止执行的命令。

Cursor 增加了代码库的索引功能,可以在整个代码库中完成任务。在 Ask 模式中,你可以主动 @Codebase,而在 Agent 模式下,它会自动搜索整个仓库。

在设置中可以查看是否已索引整个项目:

在聊天中,经常使用 @ 功能,比如可以 @ 文件、@ 文档、@ git 等等,对文件还可以直接拖动左侧目录树到对话框里。

提前索引文档:

你还可以查看执行历史,甚至可以让它并行执行多个任务:

Pro 版本每月收费 20 美元,可以通过 wildcard 虚拟信用卡 进行充值。每月提供 500 次快速请求,使用完后慢速请求的体验影响不大:

Cursor 让我们从繁琐的编码细节中解放出来,原来的 ChatGPT 对话粘贴再对话的方式,现在变成了一条龙的服务。我们只需告诉它想要做什么,等待它生成代码,然后审查代码或功能,期间还可以做其他事情。
其实,我们只需要表达出想要的目标,具体怎么实现就交给它来安排了。
Cursor 的使用案例
分渠道 eslint 需求
需求背景
公司有一份代码需要在微信小程序、美团、优选 app 和微信美团小程序这四个渠道中复用,代码中需要支持分渠道编译以实现特定的差异化逻辑,比如下面的代码:
// @if p == 'wx' || p == 'wxmt'
import { getDpApp } from '@yxmp/root/xxxxxx';
// @endif
function isReportToUnicorn() {
const app = getDpApp();
abForUnicorn = app?.$abTest?.isGrey('grocery_c_front_xxxxxx', 'a') || false;
return abForUnicorn;
}
如果直接调用 getDpApp,会导致线上问题,因为编译后只有在 wx(微信小程序)和 wxmt(美团小程序)中会出现 getDpApp,而美团和优选 app 中并没有引入这个。
然而,普通的 eslint 检查并不能及时捕捉到这个问题,因为 // @if p == 'wx' || p == 'wxmt' 对 eslint 来说只是个普通注释。
所以,我们需要对编译后的四个渠道逐一进行 eslint 检查,以及时发现问题。
快速开发
eslint 校验的这个项目是我第一次接触,之前在 Cursor 出现之前,我得花时间去熟悉每一个功能,然后再验证自己的想法。
但自从有了 Cursor,一切都变得简单多了。我们只需拆解任务,告诉 AI 我们想做什么,让它直接去执行,可能功能就已经完成,而我们还没意识到发生了什么。
这其实可以分为两个步骤:
1、生成四个渠道编译后的文件,然后传出去。

接着需要进行几次修复,比如我们的渠道中还有 tt,它也直接加上了,可以让它去掉:

如果运行时报错,可以把命令行的错误信息直接贴给它:



因为它没有项目相关的背景知识,生成的编译内容可能不符合预期。但是,当我知道项目中已经有一个编译方法(同事提前告诉过我)时,只需直接告诉 AI 就可以了:

由于之前 Cursor 尝试过自己的方法,生成了一些冗余代码,我们也可以让它删掉这些多余的部分。

刚才我们直接生成了四个渠道的内容,相关的 files 并没有返回,然后我又让它调整了一下返回内容的结构:



2、根据四个渠道生成的内容再分别进行 lint 检查。

结果,Cursor 成功生成了我们需要的代码,整个流程其实已经顺利完成。而且让我惊喜的是,Cursor 对 eslint 的使用比我还熟悉。
优化代码的日常
在我们原来的项目中,是通过调用 lintFiles 来进行代码检查,接受的参数是文件路径。但是因为这次生成的是文件内容,lintFiles 不再适用了,它聪明地换成了 lintText 来进行代码检查。
接下来,我们需要对不同输出渠道的内容进行一点优化:


简单看了看代码的改动后,我又请它进一步优化:

因为之前的 lintFiles 和新加的 lintText 都需要格式化输出,Cursor 把格式化逻辑抽成了一个公共方法,方便调用。
不管代码的理解程度如何,这次的需求功能已经顺利实现,真是快得让人惊讶。
不过,因为技术方案还没写好,具体的流程我还得和同事再确认一下。于是,我直接让 Cursor 帮我们生成了一份改动的文档:


当然,最好把上面两句合并说出来,不然它只会在对话框里输出,直接生成文件会更方便。它生成的流程图是通过 mermaid 制作的,只需安装一个插件,就能在 Cursor 中预览流程图了。



生成的文档基本都能用,图文并茂,看起来很不错:

继续完善
和同事讨论后,确认了一些细节,接着我又和 Cursor 聊了聊。
由于直接把所有文件内容透传给了 eslint,可能会导致内存问题,所以我决定传递一个编译函数进去。

好了,修改完毕,现在需要把相关人员拉进技术方案评审,并直接开始代码审查,因为代码已经写好了。
我让 Cursor 再生成一份新的技术文档,直接告诉它需要包含哪些 commit:



流程图很详细,改动的点也清晰可见:

除了技术方案,Cursor 还给了我们一个优化建议:

好的,那就让它优化一下吧:

技术方案还需要一份测试计划,根据我的要求让 Cursor 帮忙举个例子。


代码审查后再调整
之前批处理写死了一个 10,代码审查的评论建议改为 horn(配置平台)动态下发,于是我给 Cursor 描述了一下:

优化一下 ts:


eslint 分渠道治理
在测试过程中发现了不少可能在生产环境引起问题的 eslint 错误,这时候需要一份文档,把相关人员拉来一起排查修复。难道要一个个复制生成的结果吗?当然不需要,这也交给 Cursor:



生成的表格预览后可以直接复制到文档中:

到此为止,需求在没有写一行代码的情况下就完成了。
编码可不止于编码
Cursor 不再仅仅是代码的辅助工具,正如上面所示,它已经帮助我们完成了技术方案的编写,它的用途远不止于此。限制它能力的不是技术本身,而是我们的想象力。
RAG
RAG(Retrieval-Augmented Generation)是一种将信息检索与生成式AI结合的技术,先从外部知识库中获取相关信息,再利用大模型生成更准确且上下文丰富的回答,通常应用于问答系统和知识管理。
得益于 Cursor 索引整个仓库的能力,我们只需将所有文档放入一个文件夹,等待索引完成后,就可以询问它关于文档的任何问题。
代码理解能力
对于不太熟悉的项目,想快速了解某个点,比如某个按钮的埋点 bid 是什么,直接问它就好了:

需要特别注意的是,Cursor 默认不索引 .gitignore 中的文件。
处理 Excel
如果 Excel 中有 4 个工作表,其中一些行是灰色的,我想把这些行去掉:

直接让 Cursor 读取并处理就可以了:

更多功能
… …
与 Cursor 的对话经验
- 及时提交代码,达到可用状态后再与它对话,这样方便我们进行回退。
- 把大的目标拆分成一个个小目标,让它逐步完成。
- 越明确的指令效果越好,但这个程度需要不断体会。
Cursor 不断探索中
说到 Cursor,它的持续扩展能力主要得益于 Cursor rules(每次请求时都会把这些规则传递到对话中)。这些规则中有很多来自于 awesome 项目,像这样的链接就很有帮助:https://github.com/PatrickJS/awesome-cursorrules
目前,虽然 Cursor 有了强大的“脑子”,但它的“手脚”仍然需要我们来赋予。你可以参考 Cursor rules 的详细扩展内容,这里有个链接:搏一搏,
500:一小时内把 Cursor 改造成 Devin。
通过改造,我们可以让它执行一些计划,积累错误经验,使用工具等等。
举个例子,如果我们写一个函数来访问公司内部的 js 错误监控,然后在 Cursor rules 里告诉它如何访问,那你问它“昨天 xxx 页面的 js 错误情况怎样?”它就能给你答案了。
另外,Cursor 还支持 MCP(模型上下文协议),这是由 Anthropic(也就是训练 Claude 的公司)推出的一个开放标准。MCP 提供了一个统一的接口,让 AI 应用程序能够安全地访问和操作本地数据和服务,实现 AI 能力与本地资源的无缝对接。
目前已经有不少软件支持这个协议,这意味着 Cursor 可以和许多软件进行互动。想了解更多可以看看这个 awesome 项目:https://github.com/punkpeye/awesome-mcp-servers/tree/main。比如说,有个前端相关的例子:Figma + Cursor:用 MCP Server 在设计和代码之间实现无缝转换。
结合 Cursor rules 和各种 MCP,如果公司内部的监控平台、数据查询等系统都能兼容,那内部的所有系统打通后,真让人想象不到它会有多强大。
最后我想抛出一个大胆的看法:
编程的方式正在经历一场翻天覆地的变化:从面向过程到面向对象,再到函数式编程,现在我们又进入了面向 AI 编程的新纪元。传统的编程语言(比如 C++、Python、JavaScript、Java)可能会慢慢变得像汇编语言一样——我们知道它们的存在,但不需要深入学习。未来的主流编程方法将是使用自然语言。
推荐你去看看这些文章:
windliang:AI 杂想windliang:一行代码没写用 ai 开发了一个链接转二维码的网站,公众号引用链接更方便

Cursor 的功能真是让人惊艳,特别是 agent 模式下的自动化处理,极大地提高了编程效率。能自主执行任务和修复错误,真是编程者的好帮手。期待更多更新!
Cursor 的 yolo 模式和索引功能真是太方便了,能够简化很多繁琐的操作,提升工作效率,值得尝试一下。
Cursor 的 Ask 模式和聊天功能非常实用,能够快速获取所需的信息和代码,真心觉得它可以大大提升开发者的工作效率。
Cursor 的隐私模式和禁止执行命令的配置让人感到更安全,尤其是在团队协作中非常重要。能够更好地保护代码和数据隐私。
Cursor 的全新功能让我感到惊喜,尤其是 agent 模式的任务自动化,确实可以节省不少时间。希望以后能有更多实用的更新。
Cursor 的代码库索引功能非常实用,能够快速定位需要的代码,极大提高了我的工作效率,真心推荐给团队使用。
对于需要在多个渠道中复用代码的团队来说,Cursor 的功能真是个大救星,能够智能处理不同编译需求,省去了很多手动操作。
Cursor 的 agent 模式实在是太强大了,能够独立完成多种任务,真的是解放了我的双手,编程效率大幅提升。
Cursor 的功能真的是很全面,特别是能够支持多个渠道的代码复用,简化了很多复杂的操作,让开发变得轻松不少。期待后续更多更新!
Cursor 的使用体验真是颠覆了传统编程方式,特别是在复杂任务上能自动处理,真心觉得能让开发者更专注于逻辑实现,而不是繁琐操作。
Cursor 的 yolo 模式简化了命令行操作,节省了很多确认时间,让编程流程更加流畅,真是个不错的功能。
Cursor 的 Ask 模式真的很方便,自动搜索代码库节省了很多时间,特别适合大型项目,值得一试。
Cursor 的隐私模式非常适合公司使用,确保了代码的安全性,同时也能提高团队的工作效率。这样一来,开发者可以更专注于编码,而不必担心数据泄露。
Cursor 的功能特别强大,尤其是 agent 模式能独立完成任务,真的是极大提升了我的开发效率,期待更多更新。
Cursor 的代码库索引功能让我在查找和管理项目时省了不少时间,尤其在大型项目中,效率提升明显。非常期待今后的功能扩展。