切换语言
切换主题

Cursor Rules 进阶配置:打造专属的 AI 编程助手

你有没有遇到过这种情况:同一个项目中,Cursor 有时生成的代码风格优雅,有时却又完全不符合你的习惯?明明在 .cursorrules 里写了一堆规则,AI 却好像「视而不见」?更让人头疼的是,换了项目又要重新配置一遍……

说实话,我第一次用 Cursor Rules 的时候也踩过这个坑。花了好几个小时写了规则,结果 AI 生成的代码还是老样子。后来才发现,问题不在于规则本身,而是我对这套系统的理解完全跑偏了。

这篇文章,我想跟你聊聊 Cursor Rules 的进阶玩法。不是那种「什么是 .cursorrules」的入门介绍,而是真正帮你把这套工具用起来、用好的实战经验。

一、Cursor Rules 核心概念重构

1.1 从 .cursorrules 到 .cursor/rules:规则系统的演进

如果你用 Cursor 有一段时间了,可能还在用传统的 .cursorrules 单文件。这玩意儿确实能用,但说实话,局限性挺明显的。

单文件的问题在哪?一是所有规则都挤在一个文件里,维护起来头疼;二是没法针对不同类型的文件设置不同的规则。举个例子,你的项目既有 React 组件又有 Python 脚本,想把规则分开写?单文件做不到。

2026 年 Cursor 推出了新的 .cursor/rules/ 目录结构,配合 MDC 格式,这些问题基本都解决了。

新的目录结构长这样:

.cursor/
└── rules/
    ├── base.mdc          # 基础规范
    ├── frontend.mdc      # 前端规则
    ├── backend.mdc       # 后端规则
    └── testing.mdc       # 测试规则

每个文件都是独立的规则模块,可以用 glob 模式指定作用范围。比如 frontend.mdc 只对 .tsx 文件生效,backend.mdc 只对 .py 文件生效。

迁移起来也不麻烦。老项目的 .cursorrules 还能用,新项目直接用新格式就行。如果你想把老项目升级,把单文件拆成多个 .mdc 文件就好,向后兼容,不用担心出问题。

1.2 三种规则类型的正确使用场景

Cursor 的规则系统分三种类型,很多人搞不清楚它们之间的关系。

Project Rules(项目规则) 放在 .cursor/rules/ 目录下,只对当前项目生效。适合写项目特有的东西,比如你用的是 React 18 + Tailwind,就把技术栈声明放这儿。团队其他人 clone 项目后,自动就能用上这些规则。

Team Rules(团队规则) 存在云端,团队成员共享。适合放团队的编码规范,比如「所有组件都用命名导出」「API 响应格式统一」。这个需要 Cursor 的 Team 版本才能用。

User Rules(用户规则) 在 Cursor 设置里配置,对你所有项目都生效。适合放个人偏好,比如你喜欢用 Tab 缩进还是空格,喜欢中文注释还是英文注释。

优先级是这样的:User Rules 优先级最高,然后是 Team Rules,最后是 Project Rules。也就是说,如果 User Rules 里写了「用空格缩进」,Project Rules 里写了「用 Tab 缩进」,最终会按 User Rules 来。

1.3 规则生效的底层逻辑

这块内容稍微技术一点,但理解了对你写规则很有帮助。

AI 在处理你的请求时,会把规则文件的内容作为上下文的一部分「喂」给模型。这意味着规则会占用 token。所以规则不是越长越好,写一堆废话只会浪费 token,效果反而不好。

文件模式匹配(globs)的工作原理跟 .gitignore 类似。写 ["**/*.tsx"] 就匹配所有 tsx 文件,写 ["app/api/**/*"] 就匹配 app/api 目录下的所有文件。

如果多个规则对同一个文件都生效怎么办?Cursor 会按文件名的字典序加载,先加载的规则优先级更高。所以你可以用数字前缀控制加载顺序,比如 00-base.mdc01-frontend.mdc

二、实战配置:从零到一的完整指南

2.1 基础配置:React + TypeScript 项目

先从一个简单的 React 项目开始。下面是一个完整的规则配置,你可以直接复制到 .cursor/rules/react.mdc

---
description: React + TypeScript 项目规则
globs: ["**/*.{ts,tsx}"]
---

# 技术栈
- React 18+
- TypeScript 5.0+
- Tailwind CSS

# 代码风格
- 使用函数式组件,用 function 关键字声明
- 用 TypeScript 接口定义 Props
- 组件文件结构:exported component → subcomponents → helpers → types
- 使用命名导出,避免 default export

# React 最佳实践
- 优先使用 Server Components(如果用 Next.js)
- 状态管理用 useState 和 useReducer
- 副作用用 useEffect,记得写清理函数
- 用 React.memo 优化性能敏感的组件

# 错误处理
- 优先用 early return 模式
- 用 guard clauses 处理边界情况
- 给用户友好的错误提示,别直接抛原始错误

这个规则的结构很简单:先声明技术栈,让 AI 知道你在用什么框架;然后是代码风格,告诉 AI 你想要的写法;最后是最佳实践和错误处理,提供一些具体的指导。

2.2 进阶配置:Next.js 14 全栈项目

Next.js 项目会更复杂一些,因为涉及前后端。推荐用模块化的方式组织规则:

.cursor/
└── rules/
    ├── base.mdc          # 基础规范
    ├── api.mdc           # API 路由规则
    ├── components.mdc    # 组件规则
    ├── database.mdc      # 数据库规则
    └── testing.mdc       # 测试规则

来看 api.mdc 的例子:

---
globs: ["app/api/**/*.{ts,tsx}"]
---

# API 路由规范
- 使用 Route Handlers (app/api/)
- 所有响应用统一的 APIResponse 类型
- 用 Zod 验证请求参数
- 错误处理用 next-safe-action

# 响应格式
- GET 请求:返回 { success: boolean, data?: T, error?: string }
- POST 请求:验证输入 → 处理逻辑 → 返回响应
- 错误分类:验证错误、业务错误、系统错误,分别处理

这样做的好处是,API 相关的规则只会在你编辑 app/api/ 目录下的文件时生效。不会在你写组件的时候,AI 给你整一堆 API 相关的建议。

2.3 高级配置:Python FastAPI 后端项目

如果你的后端是用 Python 写的,规则写法会不太一样:

---
description: Python FastAPI 项目规则
globs: ["**/*.py"]
---

# 技术栈
- Python 3.12+
- FastAPI 0.100+
- SQLAlchemy 2.0
- Pydantic v2

# 代码风格
- 用 Black 格式化代码
- 用 isort 排序导入
- 写 type hints,别偷懒
- 函数命名用 snake_case

# FastAPI 最佳实践
- 用依赖注入管理数据库连接
- 用 Pydantic 模型验证输入
- 用 background tasks 处理异步任务
- 实现统一的错误处理中间件

# 数据库
- 用 SQLAlchemy 2.0 异步 API
- 用 Alembic 管理数据库迁移
- 实现软删除和审计日志

Python 项目的规则重点在于风格工具(Black、isort)和类型提示。AI 生成代码的时候会自动遵循这些规范。

2.4 团队协作配置:多人项目管理

如果你是团队 Tech Lead,想统一团队的编码风格,可以这样组织:

项目根目录/
├── .cursor/
│   └── rules/
│       ├── README.md           # 规则使用说明
│       ├── base.mdc            # 全局基础规范
│       ├── frontend.mdc        # 前端规则
│       ├── backend.mdc         # 后端规则
│       └── team-guidelines.mdc # 团队规范
└── .cursorrules                # 向后兼容(可选)

几个实践建议:

把规则纳入版本控制。这样每个人 clone 项目就能用,不用额外配置。

每个规则文件加注释说明。新人加入团队时,看看规则文件就能理解团队的编码规范。

定期评审和更新规则。项目在演进,规则也需要跟着变。建议每个迭代复盘一下规则效果。

三、调试与优化:让规则真正生效

3.1 规则调试技巧

写了规则但 AI 不按规则来?这是最常见的问题。下面是我总结的诊断清单:

1. 检查文件位置

规则文件必须放在正确的目录:

  • .cursor/rules/ 目录下(推荐)
  • 或者项目根目录的 .cursorrules 文件

如果位置不对,AI 根本读不到。

2. 检查 glob 模式

globs 配置错了,规则就不会生效。在 Cursor 里打开一个文件,直接问 AI:「告诉我当前加载了哪些规则?」AI 会告诉你它看到了哪些规则。

3. 检查 YAML 格式

MDC 文件开头的 frontmatter 是 YAML 格式。缩进错了、冒号漏了,都会导致解析失败。

4. 检查规则冲突

多个规则可能互相冲突。看看是不是有两个规则对同一件事有不同的要求,合并一下就好。

3.2 规则优化策略

很多同学觉得规则写得越多越好。其实不是。规则太长,AI 反而「消化不良」。

原则一:精简至上

把最重要的规则放前面。AI 读规则也是从头读到尾,前面的内容更容易被记住。

原则二:具体明确

来对比一下:

模糊的写法:

# 代码风格
- 写简洁的代码
- 使用最佳实践
- 注意性能

具体的写法:

# 代码风格
- 用函数式组件,避免 class 组件
- 用 early return 模式,减少嵌套
- 用 React.memo 包装性能敏感组件
- 避免在循环里写内联函数

第二种写法,AI 明确知道该怎么做。第一种写法,AI 只能「猜」。

原则三:分层组织

按「技术栈 → 代码风格 → 最佳实践 → 错误处理」的顺序组织。逻辑清晰,AI 也容易理解。

原则四:持续迭代

规则不是写完就完事了。用一段时间,看看 AI 生成的代码质量有没有变好,不好的地方再调整。

3.3 规则效果评估

怎么知道规则有没有用?看这几个指标:

  • 一次通过率:AI 生成的代码,你直接能用的比例有多高?
  • 风格一致性:不同时间生成的代码,风格是不是统一?
  • Bug 数量:规则生效后,Bug 有没有变少?
  • 开发效率:写代码是不是更快了?

记录一下这些指标,对比规则使用前后的变化,你就知道规则是不是真的在帮你。

四、2026 年最新实践:MDC 格式与模块化

4.1 MDC 格式深度解析

MDC 是 Cursor 推出的新规则格式,比传统的 .cursorrules 灵活很多。

文件结构长这样:

---
description: 规则描述(可选)
globs: ["文件匹配模式"]
alwaysApply: false(可选,默认 false)
---

# 规则内容
具体的规则内容写在这里...

description 是给人看的,方便理解这个规则的用途。

globs 是文件匹配模式,决定规则在哪些文件生效:

  • ["**/*.tsx"] — 匹配所有 tsx 文件
  • ["app/api/**/*"] — 匹配 app/api 目录下的所有文件
  • ["*.test.{ts,tsx}"] — 只匹配测试文件

alwaysApply 设为 true 时,规则会始终生效,不受文件匹配限制。一般不建议用,会浪费 token。

4.2 模块化规则架构

大型项目推荐用更细粒度的模块化结构:

.cursor/
└── rules/
    ├── 00-base.mdc           # 基础规范
    ├── 01-tech-stack.mdc     # 技术栈声明
    ├── 02-code-style.mdc     # 代码风格
    ├── 10-frontend/          # 前端规则(子目录)
    │   ├── react.mdc
    │   └── tailwind.mdc
    ├── 20-backend/           # 后端规则(子目录)
    │   ├── api.mdc
    │   └── database.mdc
    └── README.md             # 规则使用文档

数字前缀控制加载顺序。00- 开头的先加载,10- 的后加载。这样你可以确保基础规范先生效。

子目录支持更细粒度的管理。前端规则放 10-frontend/,后端规则放 20-backend/,找起来方便。

4.3 规则生成工具推荐

不想从头写规则?有几个社区工具可以帮忙:

cursor.directory — 在线规则库,有各种框架的模板,可以直接复制。

cursorrules.org — 交互式规则生成器,回答几个问题,自动生成规则文件。

awesome-cursorrules — GitHub 上的精选规则集合,有 100 多个模板,覆盖 20 多种框架。

不过我建议,从模板开始,但要根据项目定制。别照搬,理解规则背后的原理,才能写出真正适合自己的规则。

五、总结与行动建议

5.1 快速上手清单

如果你现在就想开始,按这个步骤来:

第一步:确定项目类型。React?Next.js?Python?还是别的?

第二步:从社区模板选一个相近的。cursor.directory 或者 awesome-cursorrules 都有。

第三步:根据项目特点定制。改改技术栈版本,加一些你自己的习惯。

第四步:测试效果。写几段代码,看看 AI 生成的代码是不是更符合你的预期。

第五步:团队共享。如果效果好,把规则提交到版本控制,让团队一起用。

5.2 避坑指南

最后说几个我踩过的坑:

规则太笼统 — AI 不知道你想要什么。写得具体一点。

规则文件太长 — 200 行以内就好,太长 AI 读不完。

不测试就用 — 先小范围验证,确认有效再全面铺开。

从不更新 — 项目在变,规则也要跟着变。定期复盘一下。

5.3 进一步学习资源

想深入了解的话,这些资源可以看看:

现在就打开你的项目,给它配置第一个 Cursor Rules 吧。从简单的开始,慢慢完善。你会惊讶地发现,AI 变得越来越「懂你」了。

配置 Cursor Rules 进阶规则

从零开始为项目配置模块化的 Cursor Rules,提升 AI 编程助手的理解能力

⏱️ 预计耗时: 30 分钟

  1. 1

    步骤1: 创建规则目录结构

    在项目根目录创建 .cursor/rules/ 目录:

    ```bash
    mkdir -p .cursor/rules
    ```

    如果是从旧的 .cursorrules 迁移,先保留原文件,新旧格式可以共存。
  2. 2

    步骤2: 创建基础规则文件

    创建 base.mdc 文件,定义项目基础规范:

    ```markdown
    ---
    description: 项目基础规范
    globs: ["**/*"]
    ---

    # 项目信息
    - 项目名称:你的项目名
    - 技术栈:列出主要技术

    # 通用规范
    - 代码风格要点
    - 命名约定
    - 注释规范
    ```

    这个文件会应用到所有文件。
  3. 3

    步骤3: 按文件类型创建专项规则

    创建针对特定文件类型的规则,如 frontend.mdc:

    ```markdown
    ---
    globs: ["**/*.{ts,tsx}"]
    ---

    # 前端规则
    - 组件规范
    - 状态管理约定
    - 样式规范
    ```

    globs 支持多个模式:`["**/*.ts", "**/*.tsx"]`
  4. 4

    步骤4: 测试规则是否生效

    在 Cursor 中打开一个目标文件,直接问 AI:

    "请告诉我当前加载了哪些规则?"

    AI 会列出它识别到的规则文件。如果没有,检查:
    - 文件位置是否正确
    - glob 模式是否匹配当前文件
    - YAML 格式是否有语法错误
  5. 5

    步骤5: 纳入版本控制

    将规则提交到 Git:

    ```bash
    git add .cursor/rules/
    git commit -m "feat: add cursor rules configuration"
    ```

    团队成员 clone 项目后自动获得规则配置。

常见问题

Cursor Rules 规则文件应该放在哪个目录?
推荐放在项目根目录的 `.cursor/rules/` 目录下,每个规则一个 `.mdc` 文件。旧的 `.cursorrules` 单文件格式仍然支持,但新项目建议使用新的目录结构。
.cursorrules 和 .cursor/rules/ 有什么区别?
`.cursorrules` 是传统的单文件格式,所有规则写在一个文件里。`.cursor/rules/` 是新的目录结构,支持多个 `.mdc` 文件,可以用 glob 模式精确控制每条规则的作用范围,更适合中大型项目。
为什么我的规则没有生效?
常见原因有四个:

• 文件位置不对 — 必须在 `.cursor/rules/` 或根目录的 `.cursorrules`
• glob 模式写错了 — 不匹配当前文件
• YAML frontmatter 格式有误
• 规则内容太长或太模糊,AI 无法有效理解

可以在 Cursor 里直接问 AI:「告诉我当前加载了哪些规则?」来诊断。
规则文件多长比较合适?
建议控制在 200 行以内。规则太长会占用大量 token,AI 反而难以理解核心要点。把最重要的规则放前面,用具体的示例代替模糊的描述。
User Rules、Team Rules、Project Rules 的优先级是怎样的?
优先级从高到低:User Rules(个人偏好,所有项目生效)→ Team Rules(团队共享,需要 Team 版本)→ Project Rules(项目特定规则)。优先级高的会覆盖低的。
MDC 格式中的 globs 怎么写?
globs 使用 glob 模式匹配文件路径。常用示例:

• `["**/*.tsx"]` — 匹配所有 tsx 文件
• `["app/api/**/*"]` — 匹配 app/api 目录下所有文件
• `["*.test.{ts,tsx}"]` — 只匹配测试文件
• `["**/*.ts", "**/*.tsx"]` — 匹配多种文件类型

支持数组形式写多个模式。
有没有现成的规则模板可以参考?
有几个社区资源:cursor.directory(在线规则库)、cursorrules.org(交互式生成器)、GitHub 上的 awesome-cursorrules 仓库(100+ 模板,覆盖 20+ 框架)。建议从模板开始,根据项目特点定制。

12 分钟阅读 · 发布于: 2026年3月20日 · 修改于: 2026年3月22日

评论

使用 GitHub 账号登录后即可评论

相关文章