大家好,我是专注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 打造成高效的协作编程助手,大幅提高开发效率和代码质量。
- 错误修复与重构: 有开发者分享了用于修复错误的规则,例如创建一个名为
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/218134.html