短时间吃透Cursor规则,让AI精准改代码
各位好呀,我是星河。近期有伙伴跟我反馈,在学习运用Cursor编程的过程中,发现AI生成的代码不够规范,还会胡乱修改已写好的代码。其实借助Cursor Rules能够缓解这个问题,之前我在文章里简单提及过,这回就趁此机会给大家讲讲Cursor Rules的原理和使用方法。
什么是Cursor Rules?
大语言模型没办法保证在多次会话间留存记忆。所以Cursor推出了Cursor Rules,通过在提示词层级运用持久且可复用的上下文来解决该问题。当Cursor Rules发挥作用时,其内容会被插入到模型上下文的开头,从而在AI生成代码、解释修改或者辅助工作流时提供具有一致性的指导。按照官方说法,Cursor的规则是“用可复用的、有范围限定的指令来把控Agent模型的行为”。
Cursor主要支持两类规则:用户规则(User Rules)和项目规则(Project Rules)。
另外还有一种通过.cursorrules文件来制定规则的方式,但这种方式已逐渐被官方弃用。要是你还在使用,建议尽快按照“项目规则”的方式进行迁移。
用户规则(User Rules)
用户规则相当于全局设置,适用于用户环境下的所有项目。可在“设置->Rules->User Rules”中进行设置:
在这里,我们能够设置角色、代码规则以及一些个性化配置。我常用的一条设置是:
所有的回复都使用中文
我们可以对角色进行设定,例如:
你是一名经验丰富的软件开发专家和编程助手,精通各类主流编程语言与框架。你的用户是一位独立开发者,致力于个人项目或自由职业开发任务。你的核心职责是生成高质量代码、优化性能、并主动协助排查与解决技术问题。
我们还能对编码规范和质量提出要求,比如:
遵循架构设计,保持代码风格一致 代码修改遵循单一职责原则,不混合多个变更 在进行代码设计规划的时候,请符合"第一性原理" 在代码实现的时候,请符合"KISS原则"和"SOLID原则" 尽量复用已有代码,避免重复代码
我们也能提出一些个性化要求,比如:
请在回复开头称呼用户为"帅哥/美女"
项目规则(Project Rules)
项目规则用于助力理解代码库并遵循项目规范,可被自动调用或由Agent调用,且与代码库同步。规则是项目根目录下.cursor/rules目录里一个个独立的.mdc(MarkDown Container)文件。除了手动创建外,还能通过以下三种方法创建规则文件:
-
在“设置->Cursor Rules->Project Rules”里进行添加:
-
或者使用快捷键“Ctrl+Shift+P”,搜索“New Cursor Rule”来添加:
-
官方还提示可以使用/Generate Cursor Rules命令来生成规则文件,不过我用的0.48.7版本没有这个命令,这儿参考官方视频:generate-rules
创建项目规则时,可选择“规则类型(Rule Type)”:
Cursor目前支持四种不同的规则类型:
在项目规则中,我们能按不同维度制定不同的规则文件,例如在开发管理层面,可创建general.mdc来指定通用开发规范,创建git.mdc来指定git提交规范,创建doc.md来指定文档编写规范等;在编程语言层面,可针对不同的语言指定不同的编码规范,例如java.mdc,cpp.mdc,python.mdc等;对于不同的技术框架,也能针对性地进行规则制定,例如创建react.mdc来规范React组件设计和Hooks使用,创建tailwind.mdc作为Tailwind CSS样式指南等。
使用建议
官方给出的规则建议如下:
* 聚焦:单条规则不超过500行
* 模块化:复杂概念拆分为可组合的多条规则
* 具体化:提供明确示例或引用文件
* 避免模糊:像编写内部文档那样清晰表述
* 复用:对重复使用的提示进行规则化
我个人理解,Cursor Rules就是一个强制添加的提示词。既然是提示词,那就有较多灵活操作空间,不用局限于编程相关,可尝试拓展规则边界。比如我为了清晰知晓AI在编码过程中具体做了什么,制定了一条生成开发历史的规则:
每次会话请求结束后进行总结,无论是生成新文件还是修改了原有内容都需要总结。 将总结的内容添加式写入到Readme文件中(说明文件中的内容是累计增加的) 总结的内容包括: 1. 会话的主要目的 2. 完成的主要任务 3. 关键决策和解决方案4. 使用的技术栈 5. 修改了哪些文件
在官网https://cursor.directory/rules上能看到其他用户上传的优秀规则文件,可参考学习。也欢迎大家分享自己个性且好用的规则文件。