12 个小技巧:让 Cursor 成为你的最强开发助手
1 引言
AI 代码编辑器(如 Cursor, #trae 和vscode + #codebuddy )这类工具已经成为软件公司提升生产效率的重要工具之一。今天我要给大家分享一下正确使用 #cursor 的 12 条技巧。
事实上,这些技巧不仅仅适用于 Cursor,对于那些使用类似 Windsurf和trae 这种 AI IDE 的开发人员来说,它们也同样适用。
咱们一条一条来说。
2 设定 5 ~ 10 条清晰的项目规则
在项目开始就要设定清晰的项目规则,大约 5 ~ 10 条。
为啥要先设定清晰的项目 规则呢?
就是为了让 Cursor 清楚地了解项目的结构和约束。如果你使用现成的代码库,还可以试试用 /generate rules 这个功能。如下图所示:
做同一个项目,是否设定了项目规则(project rules),其效果差别很大。如果没设定规则的话,代码生成特别不可控,推进起来特别吃力。
为什么是 5 ~ 10 条呢?
因为随着项目规模越来越大,只用一个通用而宏大的 Cursor rules 来治理整个项目,根本是不现实,因为上下文过于宽泛或都多,都会导致 AI 幻觉变大,或消耗 Token 过多过快。
要是你想精准控制代码生成,就得制定更细致的规则。
在实际开发里,项目规则可以分成 通用规则、编程语言规则 和 框架规则 这三种类别。
当然,项目类型和规模不一样,需要的项目规则数量也不同。
如果是全新的项目,建议先从通用规则入手,也就是对应 root type 的 always。
或者在已搭建完项目代码库的脚手架之后,在 Agent 模式中,输入里执行 /generate rules 也行。参见图3.
项目脚手架就是提供项目初始结构和基础配置的,像目录、工具链、依赖这些,它的主要作用就是加速项目启动。
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 优化方向做了限制。
每一次的提示词对话,其实都要求了更小且具体的编码规范,所以,它们是在 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 中开启。
它和 .gitignore 有点像,是用来指定哪些文件和目录不需要 Cursor 的智能功能处理的,比如代码补全、文件搜索这些。
对于较大一点的项目代码库,建议启用这个选项,这样能更好地管理忽略规则。
你可以在不同层级的目录里放 .cursorignore 文件,实现更精细的控制。
6 让 AI 学习你手工修复后的内容
一定要检查 AI 生成的内容。如果发现有错误,就要立即修复,然后把正确的内容告诉 Cursor,让它当作示例学习。
Cursor 每次生成的代码,不一定都正确,也不一定符合要求,所以人工审查很有必要。
比如说,你所在的企业对代码注释有规范,但是, Cursor 生成的注释不符合规范,这时候你就得按照企业规范调整。
当然,不用每次都手动调整,最方便的办法就是把规范当作示例喂给 Cursor,这样它下次编程就能应用这些规范了。
7 精准指定上下文
使用 @file、@folder、@gate 这种功能,把 Cursor 的关注点定位到代码库的正确部分。
这个功能一般和前面提到的第三条“按模块推进开发”一起用。
随着项目代码越来越多,我们不可能每次都去把项目文件都遍历一次,去做内容调整。一方面是因为受上下文窗口大小的限制,另一方面,遍历整个项目文件,可能会让 Cursor 改动一些我们本来不想让它改动的代码。
所以,要善用这些上下文功能,它们就像是定位工具,能精准定位,指哪打哪。
8 把设计文档和检查清单保存在
把设计文档和检查清单保存在 ./Cursor 目录里,这样, Agent 就可以全面了解下一步要做什么。
这个目录一般包含项目规则,就是第一条提到的那些 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 编程工具时,有哪些困惑或想要提升的地方?欢迎留言交流你的经验和问题!