Wiki 教程

Cursor Rules 完全指南

📑 目录

📋 什么是 Cursor Rules

Cursor Rules 是 Cursor 编辑器的规则配置系统,用于指导 AI 在代码生成过程中遵循特定的规范和标准。通过定义项目背景、编码规范、库偏好等,你可以确保 Cursor 生成的代码与项目需求高度契合。

简单来说,Rules 就是给 Cursor AI 的"行为准则":

🎯 规则类型

Cursor Rules 分为两个级别:

1. User Rules(全局规则)

位置:Cursor Settings → Rules

适用于所有项目的通用规则,如:

User Rules 示例
# 语言设置
- 所有对话和注释使用中文
- 代码中的变量名和函数名使用英文

# 代码风格
- 使用 2 空格缩进
- 使用单引号而非双引号(JavaScript/TypeScript)
- 函数优先使用箭头函数

# 输出格式
- 回复简洁明了,避免冗余解释
- 代码块要标注语言类型
- 重要更改要说明原因

2. Project Rules(项目规则)

位置:.cursor/rules/ 目录下的 .mdc 文件

针对特定项目的规则,支持多种触发模式:

Rule Type 触发方式 适用场景
Always 每次对话自动携带 项目核心规范、架构说明
Auto Attached 匹配文件类型自动生效 特定语言的编码规范
Agent Request Agent 自动判断是否生效 特定功能的实现指南
Manual 手动 @ 引用 偶尔使用的特殊规则

⚙️ 配置方法

方法一:通过 Cursor 设置界面

步骤
1. 打开 Cursor 设置(Cmd/Ctrl + ,)
2. 选择 "Rules" 标签页
3. 在 "Project Rules" 区域点击 "Add new rule"
4. 指定规则名称,按 Enter 键
5. Cursor 会自动创建 .cursor/rules 文件夹
6. 编辑生成的 .mdc 文件,添加规则内容

方法二:手动创建文件

bash
# 创建规则目录
mkdir -p .cursor/rules

# 创建全局规则文件
touch .cursor/rules/global.mdc

# 创建特定语言规则
touch .cursor/rules/typescript.mdc

.mdc 文件结构

markdown - .cursor/rules/global.mdc
---
description: 项目全局规则
globs:
alwaysApply: true
---

# 项目背景
这是一个使用 Next.js 14 + TypeScript 开发的 SaaS 应用。

# 技术栈
- 框架:Next.js 14 (App Router)
- 语言:TypeScript 5.x
- 样式:Tailwind CSS + shadcn/ui
- 状态管理:Zustand
- 数据获取:TanStack Query

# 编码规范
- 组件使用函数式组件 + Hooks
- 使用 TypeScript 严格模式
- 遵循 Airbnb JavaScript 风格指南

# 文件结构
- app/: 页面路由
- components/: 可复用组件
- lib/: 工具函数和配置
- hooks/: 自定义 Hooks
- types/: TypeScript 类型定义

📄 最佳实践模板

React/Next.js 项目

markdown
# Next.js App Router 最佳实践

## 组件规范
- 默认使用 Server Components
- 仅在需要交互时使用 Client Components(添加 'use client')
- 使用 layout.tsx 共享布局
- 使用 loading.tsx 处理加载状态
- 使用 error.tsx 处理错误

## 数据获取
- Server Components 中直接 async/await 获取数据
- Client Components 使用 TanStack Query
- 避免在客户端请求敏感数据

## 样式规范
- 使用 Tailwind CSS 工具类
- 复杂样式抽取为组件
- 使用 cn() 函数合并类名
- 响应式设计遵循移动优先

## 性能优化
- 图片使用 next/image
- 字体使用 next/font
- 适当使用 React.memo 和 useMemo
- 大型列表使用虚拟滚动

Python 项目

markdown
# Python 项目规范

## 代码风格
- 遵循 PEP 8 规范
- 使用 Black 格式化代码
- 使用 isort 排序导入
- 最大行长度 88 字符

## 类型注解
- 所有函数必须有类型注解
- 使用 typing 模块的高级类型
- 复杂类型使用 TypeAlias

## 文档规范
- 所有公共函数必须有 docstring
- 使用 Google 风格的 docstring
- 包含参数说明、返回值、异常

## 测试
- 使用 pytest 框架
- 测试文件命名 test_*.py
- 测试函数命名 test_*
- 保持测试覆盖率 > 80%

💡 使用技巧

💡 技巧 1:提供项目上下文

在规则开头清晰描述项目背景,帮助 AI 理解上下文。包括项目类型、目标用户、核心功能等。

💡 技巧 2:明确能改什么、不能改什么

在规则中明确标注哪些文件/代码可以修改,哪些是核心逻辑不应该碰。

💡 技巧 3:使用 Auto Attached 规则

为不同文件类型创建专门的规则。例如 *.test.ts 文件自动应用测试规范。

⚠️ 注意事项

规则不宜过长。过于详细的规则会占用 context 空间,影响 AI 理解能力。保持规则简洁、重点突出。

目录结构和技术栈文件

推荐在项目根目录维护两个文件,并在规则中引用:

目录结构
project/
├── .cursor/
│   └── rules/
│       ├── global.mdc
│       └── typescript.mdc
├── directorystructure.md    # 目录结构说明
├── technologystack.md       # 技术栈说明
└── ...

📚 相关资源