想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

轻松掌握Cursor的使用技巧,让编码更高效

上周,Cursor的首席设计师Ryo Lu分享了一些关于如何高效使用Cursor的技巧,总共12条,可能有些朋友已经看过了。

不过没关系,今天我会把这些方法再跟大家聊一聊,并结合我自己在使用Cursor时的体会(我的解读部分会用灰字标注),这些方法同样适用于WindsurfTrae的开发流程。


正确使用Cursor的秘诀就是:编写快速又干净的代码。

使用不当则可能让你一整周都在清理“AI意大利面”,也就是一团糟的代码。

以下是使用Cursor的正确方式:

1. 开始时设定5到10条清晰的项目规则,让Cursor知道你的项目结构和约束条件。不妨试试对现有代码库执行/generate rules。

制定项目规则至关重要。我曾经比较过有无设定项目规则的开发过程,后者明显会让人觉得更加困难,因为代码的生成会变得不可控。

那么为什么是5到10条规则呢?如果你之前看过一篇关于Cursor规则的应用,应该会记得:

随着项目的发展,我们不能再用一条通用的.cursorrules去覆盖整个项目。为了更精准地控制代码生成,我们需要更细致的项目规则。在Cursor的实际开发中,项目规则通常分为三个层次:通用规则、编程语言规则框架规则。根据项目的类型和规模,所需的规则数量也会有所不同。

如果是新项目,建议先从通用规则(对应rule type的Always)开始;

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

当然,在项目脚手架搭建完成后,也可以在Agent模式下执行/generate rules。

注:项目脚手架提供初始结构基础配置(如目录、工具链、依赖等),主要是为了加速启动

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

关于/generate rules(自动生成规则)的功能,可以参考这篇文章的详细介绍:Cursor v0.49.x更新:自动生成Rules、MCP上下文可添加图像、新增5种强大编程模型

2. 在提示中要明确。详细描述技术栈、行为和约束,像是写一个迷你规范。

下面给大家分享几个提示词的案例:

案例1:“web版”限制了这个贪吃蛇游戏的技术栈范围,“尽量不引入外部依赖”也减少了外部依赖的安装,实际上就是最简单的HTML+CSS+JavaScript组合。

请帮我开发一个web版贪吃蛇游戏,尽量不引入外部依赖

案例2:“Chrome浏览器插件”类别限制了技术栈范围,功能描述进一步约束了要求。

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

案例3:这是针对特定页面进行UI优化,同时对优化方向进行了约束。

请优化 LoginPage 的 UI,使其符合现代简约风格,
具体要求: 
1、布局:登录表单居中,使用卡片式设计(圆角 8px,轻微阴影) 
2、配色:主色调深蓝 (#1E3A8A),背景浅灰(#F9FAFB) 
3、字体:标题用 Poppins 加粗,正文用 Inter 常规 
4、交互:输入框聚焦时边框变蓝,按钮悬停时轻微变深 
5、参考风格:类似 Notion 的登录页面,但更简洁一些。
整体功能架构保持不变

大家可以看到,每次提示词的对话其实都是在进行一次小的规范,这相当于在User Rules、.cursorrules和Project Rules之下的更细化的规范。

之前我分享过10个场景的提示词模板,包括:代码生成、功能拓展、UI调整、代码解释、项目重构、代码调试、代码修复、测试用例、代码翻译、API调用。有兴趣的朋友可以点击查看>>>和Cursor协作450+小时后,我整理了这10个常见场景的Cursor提示词模板

3. 逐文件工作;在小块集中的部分生成、测试和审查。

如果只是简单的小项目,可以用Cursor一次性生成全部代码,通常不会有太大问题。

但对于功能较复杂的中大型项目,一次性完成几乎是不可能的。我曾见过一个案例,团队用了AI IDE开发了3-4小时,结果程序完全无法运行。

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

这样的情况并不少见,问题都很类似,前期没有做好项目和结构的拆解,中期让AI IDE自己跑代码而不进行调试和审查,最后的代码就变成了一团无法修改也无法运行的废物。

解决这个问题的关键在于功能模块化,逐个模块进行处理。之前在知识星球上也提到过:

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

而关于前期项目和代码结构的拆解,之前也有分享过,感兴趣的朋友可以查看>>>Cursor项目后期维护全是坑?前期一定要做好项目和代码结构拆解

4. 先编写测试,锁定它们,然后生成代码,确保所有测试通过。

因为Agent可能会修改测试文件以让测试通过,所以在测试前,建议使用.cursorignore功能避免Agent修改测试文件。

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

.cursorignore可以在【Cursor Settings-Features-Hierarchical Cursor Ignore】中开启,这个功能主要控制.cursorignore文件的作用范围。

注:类似于.gitignore,用来指定哪些文件和目录应该被Cursor忽略,这样它们就不会被Cursor的智能功能如代码补全、文件搜索等处理。

启用【Hierarchical Cursor Ignore】选项后,一个目录中的.cursorignore文件规则将应用于所有子目录,大家可以在项目根目录或任何子目录中创建.cursorignore文件,并在文件中列出希望忽略的文件模式,比如:

node_modules/
*.log
.DS_Store
build/
dist/

对于大型项目,建议启用此选项以便更好地管理忽略规则,可以在不同层级的目录放置.cursorignore文件来实现更细粒度的控制。

注意:如果修改了此设置,需要重启Cursor才能生效。

5. 始终审查AI生成的输出,对任何错误内容进行修正,并告诉Cursor将其作为示例使用。

Cursor生成的代码并不总是正确或符合要求,因此我们需要进行人工审查。

举个简单的例子,如果你所在的公司对代码注释有一定规范,而Cursor每次生成的注释和规范有出入,这时就需要按照公司要求进行调整。

当然,你不必每次都手动调整,最方便的方式就是将这样的规范作为示例输入给Cursor,这样它就能学会并在下次编程任务中应用。

6. 利用@file、@folder、@git,将Cursor的关注点定位到代码库的关键部分。

这个功能通常与第三点“按模块推进开发”结合使用,因为随着项目代码增多,我们不可能每次都去遍历项目文件进行调整。一方面上下文限制了我们的操作,另一方面遍历代码往往会导致Cursor修改一些我们不希望它改动的部分。

因此,要善用@file、@folder、@git这些上下文功能,它们就像一个定位工具,可以帮助我们精确指向目标。

7. 把设计文档和检查清单放在 .cursor/ 目录下,这样 Agent 就能更好地理解接下来要做的事情。

.cursor/ 目录里一般会有一些项目规则(也就是之前提到的那些规则)和代码索引,像设计文档、检查清单之类的,都是为了让 AI 在分析代码和检索上下文时能更快。

从实现目标来看,设计文档和检查清单的主要作用是帮助 Agent 更全面地掌握当前项目的进度和下一步计划,所以这些文件不一定非得放在 .cursor/ 目录里。

之前我们通常会把这些信息记录在 README.md 文件里,比如:

./
└── docs/
    ├── RAEDME-design.md
    ├── RAEDME-product.md

只要每次调整后更新 README.md 文件,其实和把文件放在 .cursor/ 目录下的效果是一样的。

8. 如果代码出错,就自己动手写。Cursor 从编辑中学得更快。

我觉得这一点和前面提到的第五点有点相似。

有时候 Cursor 在某个问题上可能会陷入死循环,这时建议你自己动手做一些代码调整,你写的内容会成为 Cursor 自我学习的参考(相当于提供了一个示例),这样它就能更清楚接下来该干什么了。

不过对那些没有编程基础的用户来说,可能会有点难。

因此,我在文章的评论区和知识星球里反复强调:如果你想在 AI 编程中走得更远,最好懂一点编程知识。你并不需要在学习 AI 编程之前就把某种编程语言学好,而是在具体的开发场景中,逐步补充自己的编程知识。

9. 利用聊天历史来改进旧的提示,而不是从零开始。

之前有位小报童用户问我,

“提了个问题但 AI 输出到一半时发现思路跑偏了,这时候该停下来继续补充对话吗?还是直接提新问题?还是停下重新编辑问题再提?”

我当时的建议是,“可以让它继续,根据它的回答再追问,调整一下。”

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

我觉得我们和 Cursor(或者其他 AI)的每次对话其实都是有意义的,不论这次对话的结果是否让人满意。

如果满意当然很好,但如果不满意,至少我们知道了哪里不对劲,这样下一次对话就有了改进的方向。所有聊天记录都可以用来优化提示词的上下文。

10. 有意识地选择模型。Gemini 用于精准,Claude 用于广泛。

我之前分享过一篇文章,里面提到一个常见的误区,就是用一个 AI 模型去解决所有问题

其实,正确的做法应该是根据不同的场景选择不同的模型。当然,每个人的编码体验可能会有所不同:

在@Cj Z看来:在 Cursor/Windsurf 中:

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

在@Ryo Lu看来:每个模型都独一无二,就像人类一样,在 Cursor 中感受它们:

  • ‍ Gemini 2.5:高级软件工程师 1,需要推动
  • ‍ Claude 3.7:过度思考者,喜欢用工具,需要驯服
  • ‍ Claude 3.5:全能高手,依然如故
  • ‍ GPT-4.1 / o3:开始意识到编程不仅仅是基准测试

我也在知识星球分享过类似的看法,Claude 3.7 适合做规划,而 Claude 3.7 因为喜欢“画蛇添足”所以更适合脑补最佳实践场景,Claude 3.5 则能比较好地执行指令。

至于 Gemini 2.5,它现在是我在 Claude 解决不了的问题时一定会用到的一个模型,算是被大家低估的编程模型。

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

11. 在新的或不熟悉的技术栈中,粘贴文档链接。让 Cursor 逐行解释所有错误和修复。

以前在面对新的或陌生的技术栈时,粘贴文档链接确实是个不错的选择,这其实是利用了@Web 的联网功能,去获取相关文档。

那么这些最新的文档链接怎么获取呢?大家可以考虑使用 Context7。

:https://context7.com/

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

你可以在 Context7 上找到最新的文档链接,然后粘贴到 Cursor 中进行代码修复。

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

当然,你也可以使用 Context7 MCP,让 Cursor 直接调用最新文档,这样可以降低出错率。

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

:https://github.com/upstash/context7-mcp/tree/master

它的用法也很简单,只需在成功安装 Context7 MCP 后,在对话中加入“使用 context7”(或类似表达,比如“使用 context7 获取文档”)即可:

新的 Next.js after() 函数是如何工作的?使用 context7

12. 对于大型项目,安排夜间索引,同时限制上下文范围以保持性能流畅。

Cursor 有一个代码库索引(Codebase Indexing)功能。

索引是个耗时且资源密集的过程,处理大型项目时(比如包含大量文件、数据或内容的系统)可能需要几个小时,甚至更久。选择夜间运行索引任务是因为夜间系统负载较低,用户活动少,计算资源更充足,这样可以避免影响白天的工作效率。

想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!

在【Codebase Indexing】中,可以设置忽略文件(Ignore files),这样 Cursor 在索引项目代码时就会跳过这些不必要的内容,这就是前面提到的通过限制上下文范围来减少计算资源消耗,从而降低内存和 CPU 使用,提高索引或查询速度。

Ryo Lu 最后提到,“结构和控制是胜利的关键(目前如此)。把 Cursor 代理看作一个强大的初级员工——只要你指明方向,它就能快速走得很远。”

关于 Cursor 12 种正确用法的分享就到这里,希望能给大家带来启发。

来源:知乎
原文标题:如何学习使用cursor? – Next蔡蔡 的回答
声明:
文章来自网络收集后经过ai改写发布,如不小心侵犯了您的权益,请联系本站删除,给您带来困扰,深表歉意!

《想掌握cursor的使用技巧吗?来看看Next蔡蔡的分享吧!》有11条评论

发表评论