持续交付2.0

12 个小技巧:让 Cursor 成为你的最强开发助手

关注我,每天收获一个新技能!
关注我,每天收获一个新技能!

1
引言

AI 代码编辑器(如 Cursor, #trae
 和vscode + #codebuddy )这类工具已经成为软件公司提升生产效率的重要工具之一。今天我要给大家分享一下正确使用 #cursor 
的 12 条技巧。

事实上,这些技巧不仅仅适用于 Cursor,对于那些使用类似 Windsurf和trae 这种 AI IDE 的开发人员来说,它们也同样适用。

咱们一条一条来说。

2
设定 5 ~ 10 条清晰的项目规则

在项目开始就要设定清晰的项目规则,大约 5 ~ 10 条。

为啥要先设定清晰的项目 规则呢?

就是为了让 Cursor 清楚地了解项目的结构和约束。如果你使用现成的代码库,还可以试试用 /generate rules 这个功能。如下图所示:

图1:生成规则的选项
图1:生成规则的选项

做同一个项目,是否设定了项目规则(project rules),其效果差别很大。如果没设定规则的话,代码生成特别不可控,推进起来特别吃力。

为什么是 5 ~ 10 条呢?

因为随着项目规模越来越大,只用一个通用而宏大的 Cursor rules 来治理整个项目,根本是不现实,因为上下文过于宽泛或都多,都会导致 AI 幻觉变大,或消耗 Token 过多过快。

要是你想精准控制代码生成,就得制定更细致的规则。

在实际开发里,项目规则可以分成 通用规则、编程语言规则 和 框架规则 这三种类别。

图1:Cursor 规则
图1:Cursor 规则

当然,项目类型和规模不一样,需要的项目规则数量也不同。

如果是全新的项目,建议先从通用规则入手,也就是对应 root type 的 always。

图2:通用规则
图2:通用规则

或者在已搭建完项目代码库的脚手架之后,在 Agent 模式中,输入里执行 /generate rules 也行。参见图3.

图3:Cursor 规则生成
图3:Cursor 规则生成

项目脚手架就是提供项目初始结构和基础配置的,像目录、工具链、依赖这些,它的主要作用就是加速项目启动。

3
每次对话都应该包含更具体的规范指引

在每次对话的提示词中,一定要具体且详细地说明技术栈、行为和约束,它就像是一个迷你规范。但每次输入这些规范太麻烦,所以可以给它放到你的工具箱中(引用更具体的上下文规则文件,或者事先定义snapits,使用快速键来调用。

我给大家看 3 个提示词案例。

第一个案例是 Web 版的贪吃蛇游戏。

写一个web版本的贪吃蛇游戏,尽可能使用原生 HTML、CSS 和 Javascript,少引入外部依赖,尽可能简单,尽可能快。 

这个提示词限定了技术栈范围,尽量不引入外部依赖,这样就减少了依赖安装,基本上就是最基础的 HTML、CSS 和 Javascript 技术栈组合。

第二个案例是 Chrome 浏览器插件

请帮我开发一个 “图片转 png” Chrome 浏览器插件,这个插件的功能是: 1、开启插件后,用户在浏览器图片鼠标右键后会出现插件入口” 下载为 png”,点击就可以把选中的任意格式的图片下载为 png 格式的图片; 2、支持下载为 png 的图片格式包括 JPG、JPEG、PNG、BMP、webp、svg; 3、使用 OffscreenCanvas 避免阻塞主线程; 4、通过 Blob URL 减少内存占用。 

这个提示词既限定了技术栈范围,又对功能进行了约束。

第三个案例是指定特定配置进行 UI 优化,还对 UI 优化方向做了限制。

case 3
case 3

每一次的提示词对话,其实都要求了更小且具体的编码规范,所以,它们是在 user rules、Cursor rules、project rules 之下,更细粒度的规范。

4
以文件为单位进行工作

要是做那种功能简单的小项目(例如一个小工具脚本),用 Cursor 一次性生成全部代码,一般没啥大问题。

但是,如果是那些功能比较复杂的中大型项目,想一次性搞定,几乎是不可能的。

此时,应该以文件为最小工作对象进行工作。聚焦于一个小小功能点块,对其进行代码的生成,测试和人工检查。

我之前听过一个案例故事,有个团队用 AI IDE 开发,花了 3 ~ 4 个小时写代码,结果后续花了 20 个小时研究 AI 写的代码,最后程序还运行不起来。

好的开始,坏的结果
好的开始,坏的结果

这种情况并不少见。问题也都差不多,那就是:

前期没做好项目和结构拆解,中期任由 AI IDE 自己跑代码,也不调试和审查,到后期代码就变得一团糟,改不了也运行不了。

解决这个问题的关键,就是先把要开发的功能进行模块化分解,然后再一个模块一个模块地解决。

我之前也讲过,别想着让 Cursor 一次性生成太长的代码,这样不仅上下文会出问题,生成的代码大概率也有毛病。

现在比较好的做法是让 Cursor 分多个批次,逐步生成。

具体怎么做呢?

先做核心功能,核心功能没问题了,再分区域、分功能一点点补齐。

项目分解
项目分解

5
TDD:自动化测试用例先行

先写自动化测试用例,锁定测试文件,然后再生成代码,直到所有测试都通过

这里要注意,因为当我们使用 agent模式时,AI 有很大的自主权。它很可能会修改测试文件,来让测试用例通过。

这可能并不是我们希望的行为。因为测试用例已经被我们事先检查过,没有问题。所以,在开始生成生产代码之前,建议大家使用 Cursor ignore 功能,防止 Agent 自行修改这些测试文件。

这个功能在 Cursor settings features 里的 hierarchical Cursor ignore 中开启。

打开 cursor 的 ignore 功能
打开 cursor 的 ignore 功能

它和 .gitignore 有点像,是用来指定哪些文件和目录不需要 Cursor 的智能功能处理的,比如代码补全、文件搜索这些。

对于较大一点的项目代码库,建议启用这个选项,这样能更好地管理忽略规则。

你可以在不同层级的目录里放 .cursorignore 文件,实现更精细的控制。

cursor ignore 文件
cursor ignore 文件

6
让 AI 学习你手工修复后的内容

一定要检查 AI 生成的内容。如果发现有错误,就要立即修复,然后把正确的内容告诉 Cursor,让它当作示例学习。

Cursor 每次生成的代码,不一定都正确,也不一定符合要求,所以人工审查很有必要。

比如说,你所在的企业对代码注释有规范,但是, Cursor 生成的注释不符合规范,这时候你就得按照企业规范调整。

当然,不用每次都手动调整,最方便的办法就是把规范当作示例喂给 Cursor,这样它下次编程就能应用这些规范了。

7
精准指定上下文

使用 @file、@folder、@gate 这种功能,把 Cursor 的关注点定位到代码库的正确部分。

这个功能一般和前面提到的第三条“按模块推进开发”一起用。

随着项目代码越来越多,我们不可能每次都去把项目文件都遍历一次,去做内容调整。一方面是因为受上下文窗口大小的限制,另一方面,遍历整个项目文件,可能会让 Cursor 改动一些我们本来不想让它改动的代码。

所以,要善用这些上下文功能,它们就像是定位工具,能精准定位,指哪打哪。

8
把设计文档和检查清单保存在 

把设计文档和检查清单保存在 ./Cursor 目录里,这样, Agent 就可以全面了解下一步要做什么。

rules-folder
rules-folder

这个目录一般包含项目规则,就是第一条提到的那些 rules,还有各种代码索引。

设计文档和检查清单是为了加速 AI 的代码分析和上下文检索。从目前来看,这些文件也不一定要放在 Cursor 目录下。

之前在2025年4月9日的直播分享中,我讲了,如果项目小的话,可以记录在 README.md 文件里,每次调整及时更新就行,和放在 .Cursor/ 目录下效果是一样的。如果是项目比较大,就分别存放在不同的文件中,文件名应该表达该文件的目的与内容,如 design-doc.md, Requirement.md 和 Progress.md 等。

文档目录
文档目录

9
如果代码出现错误,不妨自己动手写代码修改

有时候 Cursor 在某个问题上一直解决不好,这时候就自己动手调整代码。你写的这些内容会成为 Cursor 自我学习的上下文,相当于给它提供了示例,这样它就能更清楚接下来该怎么做。

不过,这一点对于没有编程基础的用户来说有点难。所以,要是想在 AI 编程这条路上走得更远,最好懂点代码知识。不用先掌握某种编程语言再学 AI 编程,可以在学习 AI 编程的过程中,在具体的开发场景里慢慢补齐编程知识。

也就是说:并不是 AI 让程序员没有了工作,而是会出现更多要写代码的人群。

10
不用每次都从头开始

利用聊天历史来迭代旧的提示词,不用每次都从头开始。当 AI 输出内容的时候,我们可能发现它的思路跑偏了。此时,可以让它继续跑,然后根据它的回答,再进行二次追问和调整。

我觉得我们和 Cursor 或者其他 AI 的每一次对话都有用,不管这次对话得到的回答是否满意。满意当然好,要是不满意,也能知道不满意的点在哪,下次对话就知道怎么调整了。所有的聊天历史都能成为优化提示词的上下文。

11
根据意图选择模型

1 个 AI 模型不能做所有事情。根据不同场景使用不同的模型。比如 Gemini 用于精确任务,Claude 用于广度任务。当然,每个人的编码体验不太一样。

在 Cursor/Windsurf中:

  • 使用 Claude sonnet 3.5 进行编码(是的,对于执行代码来说,它比 3.7 更好。)
  • 使用 GPT o1/o3-mini-high 调试复杂错误。
  • 使用 Gemini Flash 2.0 扫描整个代码库并更新文档。

比如 cloud 3.7 thinking 适合做规划。Claude 3.7:适合自己不想考虑太多交互细节的时候,因为 3.7 会帮我们脑补一些最佳实践(当然,这个 “画蛇添足” 的特点在一些场景下可能是弊端,但我们可以在自己需要的时候利用好自己特点,来帮我们省事)。

完全看个人的使用体验。

当然,有些 AI 开发工具并支持选择模型。

12
用文档链接喂给AI 

对于自己不熟悉的技术栈,这确实是个好办法。它其实就是利用 @Web 的联网功能读取文档链接内容。

获取最新文档链接并不难,用一个叫 context 7 的小工具就行。它收集了很多技术框架的最新文档说明。

在 context 7 上拿到最新文档链接后,粘贴到 Cursor 里就能进行代码修复。

也可以直接用 context 7 MCP,让 Cursor 直接调用最新文档。这两种方法都能减少 Cursor 的编码幻觉。

使用 context 7 MCP 也很简单,安装好之后,每次对话后面加上"使用 context 7 获取文档"类似的表达就行。

13
每天晚上给项目重建索引

对于大型项目,要进行整页索引,并限制上下文范围,这样能保持敏捷性。

Cursor 有个 code base indexing 代码库索引功能,不过索引是个耗时又耗资源的过程,处理大型项目,比如包含大量文件数据的系统,可能需要几个小时甚至更久。

所以建议在夜间运行索引任务,因为夜间系统负载低,用户活动少,计算资源充足,不会影响白天的工作效率。

在 Codebase indexing 这里可以设置 ignore FILES,这样 Cursor 在索引项目代码时就会忽略这些文件,通过限制上下文范围,减少计算资源消耗,降低内存和 CPU 的使用,提高索引和查询速度。

最后,结构化和控制是使用 AI 的成功之道。

我们可以把 Cursor 代理看作是一位能力很强的初级员工,只要你给它指明方向,它就能发挥很大的作用。

14
小结

这篇文章总结了 12 条高效使用 AI 代码编辑器 Cursor 的实用技巧,帮助开发者提升项目开发效率和代码质量。你在使用 AI 编程工具时,有哪些困惑或想要提升的地方?欢迎留言交流你的经验和问题!