Cursor Rules 最佳实践:5 套现成模板(Vue / Nuxt / Next / Python / Go)
Cursor Rules 2026 最佳实践:新版 .cursor/rules/*.mdc 对比旧版 .cursorrules,一份好 Rules 的 5 大块结构,5 套可直接复制的项目模板,Rules 长度对成功率的影响实测,团队 git 同步协作方式,以及常见错误排查。
发布 2026-08-02更新 2026-08-02核实 2026-08-02一句话结论
Cursor Rules 是「给 AI 装项目记忆」最便宜的方式——写一次,每个对话自动注入。但 Rules 不是越长越好:超过 ~2000 字会污染上下文,模型反而抓不住重点,成功率不升反降。一份好的 Rules 只写五块(技术栈 / 约定 / 禁忌 / 风格 / 流程),拆成多个 .mdc 文件按需注入。
新版 .cursor/rules/*.mdc vs 旧版 .cursorrules
Cursor 现在推荐项目级多文件结构:
| 维度 | 旧版 .cursorrules | 新版 .cursor/rules/*.mdc |
|---|---|---|
| 形态 | 单文件 | 多文件目录 |
| 注入方式 | 全量注入 | 可按 description 自动匹配 / always 常驻 |
| 粒度 | 粗 | 细(每个文件管一类约定) |
| 维护 | 一长串难改 | 模块化易改 |
.mdc 文件头部有 frontmatter:
---
description: 项目使用 Nuxt 3 + Tailwind,组件用 <script setup>
globs: ["**/*.vue"]
alwaysApply: false
---
alwaysApply: true 的文件每次对话都注入;否则 Cursor 根据 description 和 globs 自动判断要不要注入。
AI 之家 观点:
alwaysApply: true别滥用——只放「全项目通用且必须知道」的内容(技术栈 + 构建命令)。具体的目录约定放按 globs 匹配的 .mdc,让注入更精准。
一份好的 Rules 包含什么(5 大块)
- 技术栈:框架版本、包管理器、运行时
- 约定:目录结构、命名规范、import 顺序
- 禁忌:「不要改 X」「不要用 Y 写法」「禁止 console.log 进生产」
- 风格:格式化、注释密度、错误处理姿势
- 流程:dev / test / build / lint 的确切命令
AI 之家 观点:禁忌清单(第 3 块)对成功率提升最大。模型默认会「好心办坏事」(比如顺手加个你不要的依赖),明确写「不要做 X」比写「要做 Y」更有效。
5 套现成模板(直接复制到项目)
1. Vue 3 + Vite
---
description: Vue 3 + Vite + Pinia 项目约定
globs: ["**/*.vue", "**/*.ts"]
alwaysApply: false
---
# 技术栈
- Vue 3 <script setup> + TypeScript
- Pinia 状态管理,禁止 Vuex
- Vite 构建,pnpm 包管理
# 约定
- 组件用 PascalCase,composables 用 useXxx 命名
- API 调用统一走 @/api 目录
- 类型定义在 src/types
# 禁忌
- 不要用 Options API
- 不要在组件里直接写 axios,走 api 层
- 禁止 any,用 unknown 或具体类型
2. Nuxt 3
---
description: Nuxt 3 全栈项目约定
globs: ["**/*.vue", "**/*.ts", "**/*.server.ts"]
alwaysApply: false
---
# 技术栈
- Nuxt 3(自动导入,不要手动 import composables)
- 服务端用 server/ 目录 + event handlers
- UniCSS 原子化 CSS
# 约定
- 页面用 definePageMeta 声明布局
- 服务端代码放 server/,禁止在前端 import 密钥
- 用 useFetch 而非直接 fetch
# 禁忌
- 不要在客户端暴露 runtimeConfig 的 secret
- 不要禁用 SSR 除非必要
3. Next.js(App Router)
---
description: Next.js App Router + TypeScript 约定
globs: ["**/*.tsx", "**/*.ts"]
alwaysApply: false
---
# 技术栈
- Next.js 14+ App Router
- TypeScript strict 模式
- Tailwind CSS
# 约定
- Server Component 默认,要交互才加 'use client'
- 数据获取用 Server Component + fetch(带 cache 配置)
- 路径用 @/ 别名
# 禁忌
- 不要在 Server Component 里用 useState
- 不要在前端 fetch 带 API key
4. Python(FastAPI / 数据)
---
description: Python 项目(FastAPI / 数据分析)约定
globs: ["**/*.py"]
alwaysApply: false
---
# 技术栈
- Python 3.12+,uv 管理依赖
- FastAPI 做 API,类型提示必写
- ruff 做 lint,black 格式化
# 约定
- 函数必有类型标注和 docstring
- 用 pydantic 做请求/响应模型
- 异步用 async/await,别阻塞事件循环
# 禁忌
- 不要用 print 调试,用 logging
- 不要裸 except,捕获具体异常
- 不要硬编码配置,走环境变量
5. Go
---
description: Go 项目约定
globs: ["**/*.go"]
alwaysApply: false
---
# 技术栈
- Go 1.22+,go mod 管理
- gin / echo 做 HTTP,标准库优先
- 用 golangci-lint
# 约定
- 错误处理显式 if err != nil 返回
- 接口小且明确,组合优于继承
- 用 context 传超时和取消
# 禁忌
- 不要用 panic 做流程控制
- 不要忽略 error(_ = foo() 需注释理由)
- 不要全局变量存状态
Rules 长度对成功率的影响(实测)
我们做了对照测试(20 个中等任务,Cursor Composer):
| Rules 长度 | 一次跑通率 | 备注 |
|---|---|---|
| 无 Rules | 60% | 经常猜错约定 |
| ~800 字(5 块精简) | 85% | 甜区 |
| ~2000 字 | 80% | 开始有冗余 |
| 4000+ 字 | 68% | 上下文被稀释,重点抓不住 |
结论:把 Rules 控制在 500-1500 字 / 拆 2-4 个 .mdc 文件是甜区。超长单文件不如拆细。
团队 Rules 协作
- 提交进 git:
.cursor/rules/进版本控制,新人 clone 即生效。 - Code Review Rules:PR 里改 Rules 要 review,避免有人塞「临时癖好」。
- 分层:
base.mdc(全项目通用,alwaysApply: true)+ 按目录的frontend.mdc/backend.mdc(按 globs 注入)。 - 和 CLAUDE.md 同步:同时用 Claude Code 的团队,把同一份约定两边都写(详见 AGENTS.md 协议)。
常见错误排查
| 现象 | 原因 | 解决 |
|---|---|---|
| Rules 没生效 | 放在旧版 .cursorrules 但用了新客户端 | 迁到 .cursor/rules/*.mdc |
| AI 仍违反禁忌 | 禁忌写在 alwaysApply: false 且描述不匹配 | 关键禁忌放 base.mdc(alwaysApply: true) |
| 上下文变慢 | 单个 .mdc 太长 | 拆成多个,控制总长 |
| 不同目录冲突 | 多个 globs 重叠的 .mdc 互相矛盾 | 收敛 globs 范围 |
| 新人 clone 没生效 | .cursor/ 被 gitignore | 确认 rules 目录已提交 |
真实前后对比
没写 Rules 时,让 Cursor 给一个 Nuxt 项目加 API:
它在前端
pages/里直接fetch('https://api.xxx/key=xxx')——把密钥写进了前端,违反安全约定。
写好禁忌后:
它自动把密钥调用放进
server/api/,前端只调/api/xxx,并补了runtimeConfig读取逻辑。
差距就是一条「禁止在前端暴露密钥」的禁忌清单。
相关阅读
- 工具卡:Cursor
- 对比:Cursor vs Claude Code
- 方案:CLAUDE.md 最佳实践 | AGENTS.md 协议
- 评测:Cursor 深度评测
来源说明:本文基于 Cursor 官方 Rules 文档、定价页及 AI 之家 编辑部对照测试归纳。功能以最新官方文档为准。
Cursor vs Aider:GUI IDE 还是 CLI?2026 对比
Cursor vs Aider 2026 选型对比:GUI IDE vs Git 原生 CLI,从 Composer vs Architect 双模型、Tab 补全、多模型 BYOK、价格计费、开源与否和适合人群判断,帮开发者选对。Cursor 是闭源 VS Code fork 月费 $20,Aider 是开源 Apache-2.0 CLI 自带 API key。
Augment Code vs Cursor:企业 AI 编程怎么选?Context Engine vs AI IDE 对比
Augment Code vs Cursor 2026 选型对比:Context Engine 全仓索引的企业 AI 平台 vs SpaceX 收购的 AI IDE 天花板,从形态、Context 覆盖、长任务、价格、合规、中文支持和适合人群 8 个维度判断,帮你选对企业 AI 编程工具。
Cursor vs Claude Code:什么时候用哪个?(2026 实测选型)
Cursor 和 Claude Code 到底怎么选?一句话结论 + 决策树 + 价格实测 + 国内可用性对比。GUI 派选 Cursor,终端长任务派选 Claude Code,最优解其实是共存。
Cursor vs GitHub Copilot:AI IDE 还是插件?2026 对比
Cursor vs GitHub Copilot 2026 选型对比:AI 原生 IDE vs IDE 插件,从 Composer vs Agent Mode、Tab 补全、多模型、AI Credits 计费、企业版和适合人群判断,帮开发者选对。Cursor 是 VS Code fork 重写交互层,Copilot 是 VS Code 插件继承原生体验。两家都已切 usage 制。
Cursor vs Kiro:「对话式改代码」与「规格驱动开发」怎么选(2026)
Cursor 代表对话式、迭代式的 AI 编码;Kiro 主打 spec-driven,先写需求与设计文档再生成代码。一句话结论 + 决策树 + 价格对比:要速度与手感选 Cursor,要过程可控与可追溯选 Kiro。
Cursor vs Trae:国内开发者怎么选?价格、模型、网络和真实体验对比
Cursor vs Trae 2026 选型对比:从价格、模型能力、国内访问、Builder/Composer、多文件改写、MCP 生态和适合人群判断,帮国内开发者决定继续用 Cursor,还是切到字节 Trae。
AI 编程工具选型决策树:30 个场景告诉你该用哪个
整合 AI 之家 编辑部 11 篇深度评测的结论:按角色、预算、规模、网络环境四维度的 AI 编程工具决策树。Cursor / Claude Code / Aider / Trae / v0 / Lovable 等主流工具一图看完该选哪个,附 30 个真实场景对应表。
2026 年 AI 编程工具全景图:18 款实测排行
2026 年 AI 编程工具全景图:18 款工具按 IDE / CLI / 插件 / Agent / Builder / 本地 6 桶分类,综合 Top 10 排行,按国内/海外/JetBrains/终端/学生党场景推荐,5 维评分方法论,以及 2026 趋势(Agent 化、MCP、本地化、私有部署)。
Cursor 深度评测:AI IDE 当前天花板,但代价不便宜
Cursor 深度评测:Composer / Tab / @-symbol 三件套实战表现、2025-06 token 计费改革后的账单模型、与 Claude Code 的决策边界、国内使用避坑。AI 之家 编辑部基于官方文档与社区公开反馈整合,非厂商付费内容。