Cursor Rules 使用
前言
最近在使用 Cursor
进行编程辅助时,发现 AI
生成的代码风格和当前的代码风格大相径庭。而且有时它会输出很奇怪的代码,总是不符合预期。
遂引出本篇,介绍一下 Rules
,它就可以做一些规范约束之类的事情。
什么是 Cursor Rules?
简单来说,Cursor Rules 是一系列可配置的指令或约束条件,用于指导 Cursor
的 AI
助手在生成、修改或理解你的代码时的行为。
你可以把 Rules
想象成给你的 AI
助手制定的“公司规范”或“项目指南”。它告诉助手:
- 应该做什么: 比如“在修改
API
文件时,必须添加Swagger
注释”。 - 不应该做什么: 比如“禁止使用
var
关键字”、“不要引入common
库,除非绝对必要”。 - 如何做: 比如“使用 4 个空格缩进”、“字符串统一使用双引号”、“结构体字段必须使用驼峰”。
通过设置 Rules
,可以确保 AI
生成或修改的代码符合你个人、团队或项目的特定风格、约定、最佳实践和安全要求,减少后续手动调整的工作量,并保持代码库的一致性。
Cursor Rules
分为2种
User Rules
全局生效,例如:总是以中文回答。Project Rules
只对当前项目生效,通常配置一些框架规则,API
规范等。
Project Rules
如果是针对现有项目,可以直接让 Cursor
为你生成 Rules
/Generate Cursor Rules
实际的开发场景中,Rules
主要分为三个层级:
- 通用规则 (
global.rules
): 适用于所有项目和工作区,不论编程语言和使用的框架,例如变量驼峰命名等。 - 编程语言规则 (
language.rules
): 针对特定编程语言生效。例如,Go
使用标准库net/http
进行API
开发。 - 框架规则 (
framework.rules
): 针对特定框架或技术栈生效。
通用规则
- 示例规则:
- 代码风格:
// 强制在所有语言中使用 2 个空格缩进 (除非被语言/框架规则覆盖) use_spaces: true indent_size: 2// 要求 AI 在修改或生成代码时添加清晰的注释说明改动原因 (非强制,但强烈建议) require_explanatory_comments: true
- 安全与最佳实践:
// 禁止生成或建议已知不安全的函数/模式 (通用层面,具体需在语言规则细化) avoid_unsafe_functions: true// 要求 AI 优先考虑内存安全和性能 (通用指导原则) prioritize_memory_safety_and_performance: true
- AI 交互:
// 要求 AI 在每次使用 /edit 前都先询问确认 (避免意外覆盖) confirm_before_edit: true// 限制 /edit 一次能修改的最大行数 (防止过大范围改动) max_edit_lines: 100
- 代码风格:
编程语言规则
- 典型用途: 定义特定语言的语法约定、风格指南、语言特有的最佳实践、推荐/禁用的库或特性。
- 示例规则 (Python -
python.rules
):// 遵循 PEP 8 风格指南 (作为基础) style_guide: pep8// 强制类型提示 (Type Hints):要求 AI 在生成函数/方法时添加参数和返回值的类型注解 require_type_hints: true// 指定字符串引号规则 string_quotes: single # 统一使用单引号 (')// 要求使用 `pathlib` 代替 `os.path` 进行路径操作 (更现代) prefer_pathlib: true// 禁止使用 `print` 语句,要求使用 `logging` 模块进行输出 (适用于非脚本场景) no_print_statements: true
框架规则
- 示例规则 (Next.js -
nextjs.rules
):// 要求使用 Next.js 内置的 `Link` 组件进行客户端导航 use_next_link: true// 指定数据获取方法:优先使用 `getServerSideProps` 或 `getStaticProps`, 避免在组件顶层使用 `useEffect` 获取初始数据 data_fetching: server_side_or_static_props// 遵循 Next.js 特定的文件路由约定 (pages/api, pages/[slug].js 等) follow_app_router_conventions: true # 如果使用 App Router (v13+) follow_pages_router_conventions: true # 如果使用 Pages Router// 要求 API 路由处理函数遵循特定结构 (req, res) 或 (request: NextRequest) api_route_structure: standard
总结
个人理解,Cursor Rules
就类似于 LLM
的 Prompt
。是一个强大的工具,它将 AI
的强大能力与你或团队的特定需求和规范无缝结合。
- 大幅提升代码一致性: 确保
AI
生成的代码从一开始就符合你的风格指南和最佳实践。 - 减少返工: 避免花费时间修正
AI
生成代码的格式、风格或不符合框架约定的问题。 - 强制执行最佳实践和安全: 防止
AI
引入不安全或低效的代码模式。 - 定制 AI 行为: 让
AI
助手真正成为符合你项目上下文的智能协作者。
花些时间根据你的工作流和项目需求精心配置 Rules
,很有用,这时间值得花,会发现 Cursor
的 AI
助手变得更加精准、高效,真正成为提升你开发生产力的得力伙伴。
参考
- Cursor 首席设计师 Ryo Lu 的文章,关于如何正确使用Cursor
- Cursor官方下场谈Cursor正确用法
- Cursor Rules在实际开发中的三种层级&实际应用(附20个常用Rules)