如何学习使用cursor?
Cursor首席设计师 Ryo Lu 上周发布了一条内容,关于如何正确使用Cursor,一共 12 条方法,可能部分小伙伴已经看过了。
不过没关系。今天这篇文章,除了分享 Ryo Lu 提到的这 12 条方法,还会基于我的Cursor实践对这些方法进行解读(解读内容会用灰字进行标注),这些方法同样适用于Windsurf、Trae的开发实践。
正确使用 Cursor = 快速、干净的代码。
使用错误 Cursor = 你将整个星期都在清理“AI意大利面”(即乱糟糟的代码)。
这就是正确使用它的方法:
1. 在一开始就设定 5-10 条清晰的项目规则,让 Cursor 了解你的结构和约束。尝试为现有代码库执行/generate rules。
设定项目规则很重要,我之前对比过设定了项目规则,以及没有设定项目规则去推进同一个项目,后者会明显更吃力,因为代码生成更不可控。
为什么是 5-10 条项目规则?如果大家之前看过这篇文章 Cursor Rules在实际开发中的三种层级&实际应用(附20个常用Rules),应该还记得:
随着项目壮大,我们已经没法用一条通用的.cursorrules来跑完整个项目,大家想要更精准地控制代码生成,就需要更细致的项目规则。在Cursor实际开发中,项目规则可以分为三个层级,即通用规则、编程语言规则和框架规则。根据项目类型、规模的不同,需要的项目规则数量也会有所区别。
如果是全新的项目,建议先从通用规则(对应rule type的Always)开始;
也可以在完成项目脚手架后,在 Agent 模式输入中执行/generate rules。
注:项目脚手架提供项目初始结构和基础配置(如目录、工具链、依赖等),它的核心是“加速启动”
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:这是指定特定 Page 进行 UI 优化,同时 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提示词模板
但如果是做功能相较复杂的中大型项目,那么一次性搞定基本是不可能的。之前看过这么一个案例,就是团队用AI IDE花了3-4个小时进行开发,结果后面程序完全没法运行。
这种案例并不少见,他们的问题都很相似,就是前期没有做好项目和结构拆解,中期任由AI IDE自己去跑代码也不做太多调试和审查,到了后期代码就成了一团改不动也运行不了的 。
这个问题解决起来的核心就是功能模块化,然后按逐个模块解决。之前在知识星球其实也有提到:
而关于前期项目和代码结构拆解,之前其实也有一期主题分享,感兴趣的可以移步查看>>>Cursor项目后期维护全是坑?前期一定要做好项目和代码结构拆解
4. 先写测试,锁定它们,然后生成代码,直到所有测试通过。
由于 Agent 可能会修改测试文件去让测试通过,所以在测试前,建议使用 .cursorignore 功能去防止 Agent 修改测试文件。
.cursorignore 可以在【Cursor Settings-Features-Hierachical Cursor Ignore】中开启,这个功能主要用于控制 .cursorignore 文件的作用范围。
注:类似.gitignore,用于指定哪些文件和目录应该被 Cursor 忽略(也就不会被Cursor的智能功能如代码补全、文件搜索等处理)。
当启用【Hierachical Cursor Ignore】选项后,一个目录中的 .cursorignore 文件的规则将会应用到其所有子目录,大家可以在项目根目录或任何子目录创建 .cursorignore 文件,然后在文件中列出想要忽略的文件模式,比如:
node_modules/ *.log .DS_Store build/ dist/
对于大型项目,建议启用此选项以便更好地管理忽略规则,可以在不同层级的目录放置 .cursorignore 文件来实现更细粒度的控制。
注意:如果修改了此设置,需要重启 Cursor 才能生效。
5. 总是审查 AI 输出,并对任何错误的内容进行硬修复,然后告诉 Cursor 将其作为示例使用。
Cursor 每次给出的代码并不完全都是正确的或符合要求的,所以需要我们进行人工审查。
举个最简单的例子,比如你所在企业对代码注释有一定规范,但Cursor每次生成都和这种企业规范有一定差距,这时候你就需要自己按照企业代码注释规范进行调整。
当然你不用每次都手动调整,最方便的方法就是将这种规范作为示例喂给Cursor,这样Cursor就能学会这种示例并应用到下次编程任务中。
6. 使用@file、@folder、@git,将 Cursor 的关注点定位到代码库的正确部分。
这个功能一般会搭配第三点“按模块推进开发”使用,因为随着项目代码越来越多,我们不可能每次都遍历项目文件去做内容调整,一方面受上下文限制,另一方面遍历代码往往会导致Cursor改动一些我们并不希望它改动的代码。
所以要善用@file、@folder、@git 这些上下文功能,它们相当于一个定位工具,实现指哪打哪。
7. 将设计文档和检查清单保存在 .cursor/ 中,以便 Agent 能够全面了解下一步要做什么。
.cursor/ 目录一般包含项目规则(即第一点提到的rules)以及的代码索引(比如这里提到设计文档、检查清单等),都是用于加速 AI 的代码分析和上下文检索。
如果从实现目的看,设计文档和检查清单都是为了让 Agent 更全面了解当前项目进度和下一步计划,那文件不一定要保存在 .cursor/ 目录下。
在此之前,我们的一般实践可能记录在README.md文件中,比如:
./ └── docs/
├── RAEDME-design.md ├── RAEDME-product.md
每次调整都及时更新这些README.md文件即可,和放在 .cursor/ 目录下实现的效果都是一样的。
8. 如果代码错误,就自己写。Cursor 从编辑中学习比从解释中学习更快。
我个人认为这一点和第五点有点类似。
有时候Cursor会在某个问题上反复打转,这时候建议自己动手去做一些代码调整,你的编码内容会成为Cursor自我学习的上下文(相当于成为一种示例),这样Cursor会更清楚自己接下来要做什么。
不过这一点对于零编程基础的用户来说,会比较难。
所以我之前在文章评论区和知识星球都反复提到一个观点,你想在AI编程上走得远,最好懂一点代码知识。你不需要先掌握某种编程语言再入门AI编程,而是在学习AI编程的过程中,在一个个具体的开发场景中,去补齐自己的编程知识。
之前有小报童用户问我,
“提了个问题后AI输出一半时发现思路跑歪了,这时候要不要stop并继续追加对话?还是不用stop直接进行新的提问?还是stop并重新编辑这个问题进行提问?”
我当时的回答是,“可以继续让它跑下去,根据它的回答再二次追问,调整。”
在我看来,我们和Cursor(或任何一个AI)的每一次对话其实都是有用的,无论这次对话 Cursor 给到的回答是否满意。
满意固然很好,不满意的话至少我们知道自己不满意的点在哪,这样下次对话就有了调整的方向。所有的聊天历史,都可以成为我们优化提示词的上下文。
10. 有意选择模型。Gemini 用于精确,Claude 用于广度。
我之前分享过一篇文章【经验分享】你在AI编程中可能会犯的9个错误,其中有一个常见使用误区,就是用 1 个 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 thinking适合做规划,Claude 3.7因为喜欢“画蛇添足”所以适合脑补**实践的场景,Claude 3.5能比较好遵循指令。
至于Gemini 2.5,它现在是我用Claude解决不了难题时一定会去使用的模型,一个被大家低估的编程模型。
11. 在新的或不熟悉的技术栈中,粘贴文档链接。让 Cursor 逐行解释所有错误和修复。
要是放在以前,对于新的或不熟悉的技术栈,粘贴文档链接确实是个不错的方法,它其实就是使用@Web 的联网功能,去读取相应的文档链接。
怎么获取这些最新的文档链接呢?可以考虑大家可以考虑使用 Context7。
:https://context7.com/
你可以在context7上获取最新文档链接,然后粘贴到Cursor进行中代码修复。
当然,你也可以使用 Context7 MCP,让Cursor直接调用最新的文档,进而降低幻觉。
:https://github.com/upstash/context7-mcp/tree/master
它的使用方法也很简单,就是在成功安装 Context7 MCP后,每次在对话中后加入 “使用 context7”(或类似的表达,如“使用 context7 获取文档”)即可:
新的 Next.js after() 函数是如何工作的?使用 context7
12. 让大型项目整夜索引,并限制上下文范围以保持性能敏捷。
Cursor有个 Codebase Indexing(代码库索引)功能。
索引是一个耗时且资源密集的过程,在处理大型项目时(如包含大量文件、数据或内容的系统)可能需要数小时甚至更久。在夜间运行索引任务,是因为夜间系统负载较低,用户活动较少,计算资源更充足,可以避免影响白天的工作效率。
在【Codebase Indexing】这里,是可以设置 Ignore files 的,这样 Cursor 在索引项目代码时就会忽略这些问题,这就是前面提到的通过限制上下文范围,减少计算资源的消耗,进而降低内存和 CPU 的使用,从而提高索引或查询的速度。
Ryo Lu 最后提到,“结构和控制是胜利之道(目前如此)。将 Cursor 代理视为一位强大的初级员工——如果你指明方向,它能够快速走得很远。”
Cursor 12 种正确用法的介绍和实践解读就到这里了,希望对大家有启发。
大家好,我是专注AI编程的杰一。
想必大家在使用Cursor的时候,都会遇到AI乱改代码的情况。和Cursor对线了十几条消息,改来改去也还是不满意,生成的代码还没有手写的好。
这其实是因为你还没掌握一项关键功能 —— Cursor Rules。
这篇文章将带你从0开始了解Cursor Rules,并提供多个实战场景和**实践,读完后你将学会:
- 如何配置规则来让Cursor更好的生成代码
- 如何让它写出符合你风格和结构的代码
- 如何将项目规范自动化,减少团队沟通成本
Cursor Rules,中文翻译过来是 Cursor 规则。意思很好理解,就是给Cursor制定一系列规则,约束AI生成的代码。
当一条规则被触发后,规则中的内容会被附加到提示词中,为 AI 提供参考,无论是在自动补全、代码生成、重构还是错误修复时都能遵循这些规范。
首先打开Cursor,点击File - Preferences - Cursor Settings 进入Cursor设置页面,然后点击 Rules就能看到规则页面了
在 Cursor 当中,支持两种级别的规则:
- 全局规则(User Rules):针对所有项目通用的规则
- 项目规则(Project Rules):存放于项目目录下的
.cursor/rules中,只用于约束当前项目。
当我们点击 Add New Rule后,先输入规则的名称,比如命名为:vue-rules,约束AI在编写Vue项目的规范。也可以通过快捷键 Cmd + Shift + P ,输入 New Cursor Rule 来快速打开下面的对话框。
添加成功后,在左边的资源管理器中能看到.cursor\rules目录下多了个 vue-rules.mdc,我们编写的规则就存放在这个文件里面。右侧的编辑区也会自动打开这个文件,可以通过图形化的方式进行编辑。
Cursor 支持四种规则类型:
- Always:始终应用规则
- Auto Attached:当匹配
globs模式的文件被引用时自动附加规则 - Agent Requested:根据 AI 代理的判断决定是否应用规则,需要提供规则说明
- Manual:仅在提示中显式使用
@规则名时附加规则。
简而言之,如果你想手动调用规则,用 Manual;想自动触发用 Auto Attached;想始终生效用 Always;想让 AI 自己决定是否用,就用 Agent Requested。
此外,在规则文件中,也可以使用@来添加文件,文件中的内容会作为额外上下文添加到规则文件中。
那 Cursor Rules 到底能做什么?其实场景非常丰富,比如你想让它:
- 自动补全一段你懒得写的重复代码
- 根据你定下的模板来生成组件结构
- 重构一堆你不想手动改的 legacy code
这些通过Cursor Rules都能搞定。下面给出一些示例规则,说明它们的用途:
- 整体代码风格约束: 定义通用编码规范,如使用 TypeScript、遵循《代码整洁之道》、优先使用
async/await、完善错误处理等。例如:
- 所有新代码使用 TypeScript
- 遵循《代码整洁之道》
- 优先使用 async/await 而不是回调
- 编写完善的错误处理
- 特定文件规范: 针对具体项目设定规范。例如在一个 React 项目中,可添加如下规则:
# 文件模式: *.tsx, *.ts
React 规范
- 使用函数组件
- 实现完整的 prop 类型
- 遵循 React **实践
样式
- 使用 Tailwind CSS
- 遵循团队样式指南
@file ../tsconfig.json @file ../tailwind.config.js
该规则指定了作用于 .tsx/.ts 文件的项目规范(使用函数组件、类型检查、Tailwind 样式等),并通过 @file 引用了配置文件,向 AI 提供了项目的附加上下文。
- 模板和样板: 可以定义代码模板规则来自动生成或检查特定结构。例如,为 Express 服务定义模板规则:
* 使用此模板创建新的 Express 服务:
- 遵循 RESTful 原则
- 包含错误处理中间件
- 设置适当的日志记录 @express-service-template.ts
当你在项目中创建新服务时,AI 会参考此规则提示,以生成符合规范的样板代码。同理,可为 React 组件定义规则:
* React 组件应遵循如下结构: - Props 接口放在文件顶部
- 组件作为命名导出
- 将样式放在文件底部 @component-template.tsx
这样 AI 在生成新组件时会保持统一的布局。
- 错误修复与重构: 有开发者分享了用于修复错误的规则,例如创建一个名为
refresh.md的规则,在遇到复杂错误时提示 AI 重新扫描全部相关文件并彻底修复。类似地,可以为重构需求定义规则,让 AI 按指定模式重写代码。使用规则可以让 AI 更智能地应对错误和重构场景,而不仅仅局限于当前文件。
除了Project Rules,你还可以添加User Rules,它们适用于所有项目,并始终包含在你的模型上下文中。你可以用它们来:
- 设置回复的语言或语气
- 添加个人风格偏好
比如:
请用简洁的风格回复,避免不必要的重复或赘述。
总的讲来,Cursor 规则可以为各种需求定制指导,无论是创建新功能、重构现有代码还是修复缺陷,都能通过明确的规则让AI生成更精准的代码。
你可以在
.cursor/rules目录嵌套地组织规则。例如:project/ .cursor/rules/ # Project-wide rules backend/ server/ .cursor/rules/ # Backend-specific rules frontend/ .cursor/rules/ # Frontend-specific rules嵌套规则的特点:
- 当引用其目录中的文件时会自动附加
- 仍可在上下文选择器和代理可访问的规则列表中使用
- 非常适合将领域特定规则组织得更靠近相关代码
这在单一代码库或具有不同组件且需要特定指导的项目中尤为有用。
你可以在对话中直接使用
/Generate Cursor Rules命令来生成规则。Cursor会自动阅读代码,总结代码规范、项目需求,然后将它总结成Rules。这对于已有的项目非常有用,可以让AI生成的代码和现有项目风格更统一。
Cursor会自动创建mdc文件,并把归责内容填写进去
目前版本的Cursor将规则存放在多个不同路径的mdc文件中,并根据匹配规则选择性使用。但在早期版本的Cursor里,全部规则都存放在项目根目录下的
.cursorrules文件,会附加到所有对话中。根据官网文档,项目根目录下的
.cursorrules文件仍然被支持,但将会被废弃。官方也建议迁移到mdc格式,以获得更好的控制、灵活性和可见性。要充分发挥 Cursor 规则的效果,需要编写简洁、明确的规则并在 Prompt 中正确调用。以下是一些实践建议:
- 规则简洁具体: 保持规则简洁,控制在 500 行以内是一个不错的目标
- 拆分复杂概念: 将复杂的概念拆分为多个可组合的小规则
- 使用示例与代码片段: 在有帮助的情况下提供具体示例或引用的文件
- 在提示中引用规则: 当需要时,可以在聊天提示中使用
@规则名来手动应用特定规则。 - 尽可能清晰: 避免模糊的指导。编写规则的方式应像写一份清晰的内部文档
- 及时更新: 当你发现自己在对话中重复强调某个事情时,可以将其编写成一条规则
- 团队协作: 团队内共享同一份规则,定期与团队讨论和更新,确保它们与当前代码实践保持一致。
通过以上实践,将规则编写与清晰的提示指令结合使用,Cursor AI 就能更智能地理解上下文和需求,从而产生高质量的代码结果。
为什么我的规则没有被应用?
检查规则类型。对于“Agent Requested”(代理请求)规则,确保已定义描述。对于“Auto Attached”(自动附加)规则,确保文件匹配模式与被引用的文件匹配。
规则可以引用其他规则或文件吗?
可以。你可以使用
@filename.ts将文件包含到规则的上下文中。我可以从聊天中创建规则吗?
可以。请让 AI “把这段内容变成规则” 或 “根据这个提示创建一个可复用的规则”。
规则会影响 Cursor Tab 或其他 AI 功能吗?
不会。规则仅应用于代理(Agent)和 Cmd-K AI 模型。
通过 Cursor 规则能够自动化重复任务、统一代码风格、提前捕获常见错误并加速新人上手。
有些人觉得AI编程写的代码不好,其实就是因为没有定好规则。结合精心设计的规则与明确的 Prompt,开发者可以将 Cursor 打造成高效的协作编程助手,大幅提高开发效率和代码质量。
Cursor 0.46 版本又双叒升级了!这次主打 Claude 3.7 + MCP 两大重磅更新。
本来 0.44 用得挺顺手,但面对这么大的新功能,还是忍不住第一时间冲了!到底体验如何?继续往下看!claude3.7到底提升了多少?
- 错误修复与重构: 有开发者分享了用于修复错误的规则,例如创建一个名为
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/227185.html