上篇文章给大家分享了 Cursor2.0 的更新内容(https://mp.weixin.qq.com/s/WJXSYhFFHn8hUbiZ2rnKsQ),今天再和大家分享下,如何正确的使用 Cursor!让 Cursor 能够按照你的代码编码习惯,按照你的指令实现高质量输出!
如果你现在还停留在简单的使用元宝、豆包或者安装个 copilot 插件这种基础提问的代码开发,那我建议你一定要更换 IDE 了,博主也是从 Eclipse 到 IDEA 到现在 Cursor + CodeX 转变过来的,当你会用新的 AI IDE 工具后,你会发现开发效率比之前至少要提升 2 倍以上!
而且用不了多久未来那些**架构师岗位也将会快速消失**,因为现在所有开发框架已经不需要人工去搭架构了,使用 AI 搭的架构不仅接近专家水平,而且还能快速定位各种问题处理,例如:哪些 jar 包版本冲突导致启动失败,如何保障代码事务一致性,如何实现接口的高可用等!所以,**未来能够利用 AI 完成高效开发将是未来的主流**!
本文我将结合个人经验,和大家分享下如何使用 Cursor 的三大功能 ------Rules(规则)、Memories(记忆)和 Commands(指令),实现后端的高效率开发!

1、配置 Rules
Cursor Rules可以看作是写给 AI 的"编程指南"!当我们希望 AI 严格按照项目规范行事时,Rules 功能非常有用。通过项目规则(Project Rules),我们可以为AI提供项目上下文、编码规范及定制的行为准则,从而使 AI 输出的代码更加符合团队约定 。
其主要用途包括:
- 提供项目上下文:例如项目所用框架版本、模块间关系等 。
- 设置编码风格指南:比如代码风格、命名约定等,让AI产出的代码风格一致 。
- 规范常用方法和框架的用法:指明某些框架应该如何使用,避免新手AI"乱用" 。
- 自定义 AI 的响应行为:如要求AI回答时简洁明了、不说抱歉等,统一输出语气 。
接下来讲下如何配置 Rule
++创建 Rules(.mdc)文件++
在 Cursor v0.45 之后,官方引入了新的规则机制:在项目根目录下创建一个 .cursor/rules/ 目录,将每条规则以单独的 .mdc 文件保存 。.mdc 其实就是 Markdown with metadata 的格式,每个规则文件包含YAML元数据头 和正文内容两部分 。元数据用于控制规则适用范围和触发方式,正文则写具体的规则内容。
要添加规则文件,进到 Cursor 设置界面,点击 Project Rules 下面的 Add Rule 按钮,输入你的自定义规则文件名,然后按回车!就会在根目录 .cursor/rules 下生成一个 自定义规则名.mdc 文件!

在这个.mdc 文件里你可以把自己的规则写到此处!例如:我这里代码多语言是从 ThreadLocal 去获取的,接口不要使用@RequestParam让前端传过来,这样 AI 在进行开发时候会优先读取这个规则,然后按规则去编写代码!

打开 .mdc 文件时,Cursor 会显示规则编辑界面,通常包括以下三部分 :
- Description(描述):对规则的简要描述。Cursor 的 Agent模式会据此判断何时使用该规则 。

- Globs(文件模式):指定规则自动应用的文件范围模式(例如 "*.tsx")。匹配该模式的文件在AI生成响应时会自动包含此规则 。
- Content(规则内容):这是真正的规则正文,可以使用Markdown格式书写具体要求 。你也可以通过在内容中使用@文件名引用项目中的具体文件片段,作为上下文提供给AI 。

规则文件支持不同的触发类型。常见类型包括:
- Always(总是):始终应用在模型上下文开头 。
- Auto(自动附加):当AI回复涉及某些文件(通过 globs 匹配)时自动加入 。
- Manual(手动):仅在你明确用 @规则名 引用时才应用 。
- Agent request(代理请求):AI可以自行决定是否包含的规则,一般需要提供Description供AI判断相关性 。
通常,如果规则是全局通用的规范,可将 rule_type 设为 always,确保每次对话都套用 。而针对特定文件类型或场景的规则,可以利用 Globs 或 手动 方式灵活触发。
++定制项目规则示例++
假设我们的后端项目基于 Spring Boot,为了遵循内部规范,希望**避免使用 @RequestParam 注解获取语言参数**,而是**通过 ThreadLocal 上下文获取当前语言**。我们可以为此创建一个规则文件,例如 .cursor/rules/spring-conventions.mdc,内容如下:
``---
name: spring-conventions
rule_type: always # 设为always,确保始终应用
description: Spring项目的代码规范约定
---
**后端代码规范:**
- 不要使用 `@RequestParam` 获取语言参数,**禁止**在控制器方法签名中出现语言的 `@RequestParam`。
- **统一做法**:使用 `ThreadLocal` 机制在方法内部获取当前语言环境(例如通过 `LocaleContextHolder.getLocale()`)来处理与语言相关的逻辑。
*(注:以上规则为示例,可以根据实际项目需要添加更多约定)*
``
在上述 .mdc 文件中,我们用清单形式明确规定了两个要点:避免使用@RequestParam ,以及**采用ThreadLocal获取语言**。保存该规则后,Cursor AI 会在生成代码时将这些要求作为系统提示的一部分 。也就是说,当AI为我们的Spring项目编写控制器代码时,会**自动遵循这些规则**,而无需我们每次手工提醒。
效果: 现在,当我们让 Cursor 为某个控制器生成代码时,AI 会谨慎遵循规则。

2、 利用 Memories:给 AI 长期的项目记忆
使用过 LLM 大型语言模型 API 的应该知道,大模型在两次对话生成之间**无法自行保留"记忆"****,所以我们去调用大模型的 API 接口时每次都要把之前的上下文带入。Cursor 的 Memory 功能解决了这个问题 ------ 它提供 持久的上下文**,帮助AI记住项目背景和历史。在实践中,Memory 可以通过** 规则存储和记忆库**(Memory Bank)两种方式体现:
- 自动记忆规则:Cursor在对话过程中可能会询问你是否将某些信息"记忆"下来,并将其以规则形式保存。例如,Cursor 会自动维护一个 .cursor/learned_memories.mdc 文件,记录你在聊天中确认的重要信息,使其在后续会话中被参考 。不过,目前(v0.4x版本)Cursor 的"项目记忆"在UI上表现得还不够清晰,有些记忆实际上是全局共享的 。为避免混乱,你可以手工管理这些记忆文件,将**项目特定的信息放入项目规则或Memory Bank**中。
- Memory Bank :这是社区提供的一套结构化记忆方案,将项目知识按类型存储在多个 Markdown 文件中 。例如 projectbrief.md(项目简介)、techContext.md(技术栈和开发环境)、systemPatterns.md(架构模式和编码规范)、productContext.md(功能描述和业务逻辑)、activeContext.md(当前开发任务)、progress.md(已完成工作记录)等 。通过安装 Cursor Memory Bank 插件并运行 npx cursor-bank init,会在项目中生成这些文件和相应的规则 。AI 可以使用Plan/Act 模式先规划再执行,确保每次编码都有据可循并且防止跑偏 。Memory Bank 有点类似"项目日记",需要你在完成重要功能后主动执行"Update memory bank"来更新记忆 。好处是,AI 将在后续会话中保持对最新项目状态的了解 。实践证明,Memory Bank 带来了**技术选型一致性**(AI不会随意推荐更换库,因为 techContext.md 明确了你的技术栈)和**更快的项目上手**(AI基于文档能快速熟悉新代码库)等诸多好处 。
对于一般后端项目,如果不想一开始就引入复杂的 Memory Bank,强烈推荐使用一个简洁的方案:****创建 AGENTS.md 文件。使用过 CodeX (openAI 推出的 Code CLI 工具,和它等效产品有:Claude Code、阿里的 Qwen Code、腾讯的 Code Buddy Code)工具的伙伴们应该比较熟悉,它的第一条快捷命令就是 /init,会在当前目录生成一个 AGENTS.md 记录整个文档的结构!

AGENTS.md 可以理解为专门写给 AI 看的 README 文件 。它以纯 Markdown 编写,无需任何元数据,也不涉及复杂配置,非常易读易写 。只需在项目根目录添加一个 AGENTS.md,各种支持该标准的 AI 编程工具(包括 Cursor)在开始工作时都会自动读取并理解这个文件的内容 。换言之,一次编写,多个工具通用,再也不怕不同 AI 工具的配置碎片化了。
AGENTS.md 应写什么? 你可以把它当作 AI 版的项目说明书 。一些适合放进 AGENTS.md 的内容包括:
- 项目概览:项目的架构简介、主要模块职责等(帮助 AI 理解全局)。
- 构建和运行命令:如如何安装依赖、启动应用、运行测试等。
- 代码风格和约定:比如使用哪种命名风格、哪种日志框架,是否启用严格模式等 。
- 功能模块说明:关键功能的设计思路、数据流,或任何复杂业务逻辑的提示。
- 测试指南:如何运行测试,测试覆盖哪些方面等 。
- 安全注意事项:例如敏感信息的处理规范,避免哪些危险操作等 。
- 团队开发约定:如提交信息格式、分支管理策略等。
AGENTS.md 不需要面面俱到,但应涵盖那些**"对AI很重要而对人类开发者不一定写在README的细节"** 。举个例子,README.md 里可能不会详细列出所有代码风格规则,但这些细节可以写入 AGENTS.md,让 AI 始终遵循。
技巧: 如果你已有一定规模的项目,不妨借助强大的 GPT 模型来生成 AGENTS.md 初稿。例如,可以使用最新的 GPT-5-CodeX 模型,让它基于项目代码生成一份结构化说明文档,我一般都是直接使用 CodeX,在根目录执行下 /init 去进行生成!

总之,Memories 功能让 Cursor 拥有了"长久记忆"。无论是通过项目规则持久化上下文,还是借助 AGENTS.md 等统一规范文件,你都可以让 AI 更了解你的项目 。正如有人所说,AGENTS.md 提供的其实是一种静态上下文:"告诉 AI 在这个项目里应该如何做事" 。当 AI 对项目知根知底后,再结合实时对话,它就能更可靠地帮你写出契合项目需求的代码。
3、Commands 功能:Refactor、Explain、Test 等指令的妙用
Cursor 除了自动补全和聊天窗口,还提供了便捷的命令式操作,让我们可以用自然语言直接对代码执行常见任务。对于后端开发者而言,最常用的莫过于"重构代码"、"解释代码"和"生成测试"这几类命令/指令了。下面结合实例来看如何使用这些功能:
- Refactor(重构):当你选中一段需要改进的代码时,只需按下快捷键 Cmd/Ctrl + K 打开内联提示栏,输入类似 "Refactor this code to improve performance and readability" (重构这段代码以提高性能和可读性)的指令 。Cursor 会分析选中的代码并**给出优化建议或直接提供重构后的代码**。例如,一段效率低下的循环,AI可能会建议用流式操作或更优算法替换;冗长的条件判断可能会被重构为策略模式等。你可以一键应用这些修改(或部分采纳)。这一功能就像拥有一位懂你项目的资深工程师,随时帮你改进代码。
- Explain(讲解) :遇到晦涩难懂的代码段,Cursor 可以充当你的智能助手来解释代码意图 。方法有两种:其一,选中代码按 Cmd/Ctrl + K 然后询问 "Explain what this code does";其二,打开侧边栏的 Ask 对话,直接提问"这段代码的作用是什么?"。由于 Cursor 已索引了整个代码库,它甚至能结合上下文给出精准的讲解 。例如,你选中一个复杂的 UserService 类并提问,AI可能回答:"UserService 负责用户的创建、查询和认证,内部通过调用数据库存储库和 JWT 模块实现相关功能" 。这些解释对快速理解陌生代码特别有帮助,堪称新成员上手项目的福音。当然,AI 的解释也可能有疏漏,关键逻辑还是要自己确认,但它提供了一个很好的起点。
- Test(生成测试) :让 AI 来帮你写单元测试,听上去是不是很梦幻?Cursor 确实支持这种用法。当你完成某个功能后,可以在对话栏中请求:"Write unit tests for this function"(请为这个函数编写单元测试)。AI 会分析函数逻辑并生成对应的测试用例。例如针对身份认证函数,Cursor 可能会产出一组涵盖正确凭据登录、错误密码、账号不存在等情况的测试 。这些测试通常使用项目所用的测试框架(如JUnit、pytest、Jest等)编写,并遵循项目的测试命名和结构约定 。你只需稍加审阅,修改细节,就能将其纳入测试套件。这种 AI 自动补全测试 的方式极大降低了后端写测试的压力,让你更愿意保持高测试覆盖率。
小提示: 若启用 Cursor 的 YOLO "自动运行模式",AI 甚至可以在生成测试后自动运行它们,帮你验证通过 !不过出于安全考虑,默认还是人工确认更稳妥。即便如此,让 AI 写测试再由你运行,已经省去了大量手工编写的时间。
- 其他 Commands :Cursor 还有一些实用的指令功能。例如"Explain before you change "------在修改代码前先让AI解释现有代码用途,确保不误改 ;"Document "------让AI为指定函数生成文档注释,如Javadoc或Docstring;"Find usage"------通过自然语言询问某个函数/类在哪被调用,AI 会代替你 grep 代码 ;以及结合 Git 的命令,比如在对话中输入"@Git: diff"查看改动,或要求AI根据14点代码审核清单检查PR等。这些特性不一而足,你可以在 Cursor 的上下文菜单或官方文档中找到更多惊喜。
++提升指令效果的技巧++
在使用上述 Commands 时,有一个**重要的提示**:**明确胜于含糊****!** 简单来说,就是描述清楚你希望AI操作的对象和目标,比起模糊指令要有效得多 。例如:
- 指定具体位置:若项目中存在多个同名函数/类,尽量告诉AI你指的是哪个。与其说"优化登录函数",不如说"优化 UserService 类中的 login() 函数"。必要时甚至指出文件路径,比如"在 src/main/.../UserService.java 中重构 login 方法"。明确的上下文会防止AI误改其他同名方法,也避免生成含歧义的代码。
- 限制输出范围:例如"请只展示相关片段"或"不要展开不必要的代码"。如果不加限制,有时AI会给出冗长的输出甚至整个文件内容,反而增加阅读负担。通过提示**只关注某一部分**,AI会精简回答,更直观清晰。
- 一步一事:让AI每次专注完成一个明确任务 。不要一个指令里又要重构又要写测试;最好先重构,确认没问题,再让它写测试。这符合"Plan/Act"模式的思想 :先让AI规划(或解释),你看过满意后,再执行修改或生成代码。逐步迭代不仅效果更好,也便于你掌控节奏。
通过以上方法引导,Cursor 往往能给出简洁而准确的结果,避免因为上下文不明导致的代码混乱和冗余。当然,对AI的输出我们也要保持审慎:关键逻辑、多线程安全、边界条件等地方,仍需人工审阅和测试。不过在Cursor的辅助下,我们完成这些工作的效率将大幅提升。
实战示例:Rules + AI 打造高质量后端代码
最后,以一个完整示例作结:假设我们在 Spring Boot 项目中配置了前文提到的规则,禁止使用 @RequestParam 获取语言并要求改用 ThreadLocal。现在我们让 Cursor 来实现一个简单的多语言问候接口。需求是:根据当前用户的语言,返回"Hello"或"你好"。
在 Cursor 中,我们打开一个新的控制器文件,然后输入指令:"使用 Spring Boot 创建一个 GreetingController,其中包含 /api/greet 接口,会根据当前语言返回问候语" 。由于我们已配置了相应的规则,Cursor 会特别注意语言的处理方式。AI生成的代码如下(节选):
`@RestController
@RequestMapping("/api")
public class GreetingController {
// 根据当前语言环境返回问候语的接口
@GetMapping("/greet")
public ResponseEntity<String> greet() {
// 遵循规则:通过 ThreadLocal 获取语言,不使用 @RequestParam
String lang = LocaleContextHolder.getLocale().getLanguage();
String greeting = "en".equals(lang) ? "Hello" : "你好";
return ResponseEntity.ok(greeting + " User!");
}
}
`
可以看到,AI 按我们的规范办事了 :greet() 方法中完全没有出现任何 @RequestParam 注解,而是通过 LocaleContextHolder.getLocale() 获取线程上下文中的语言 。"en" 则返回 "Hello",否则返回中文 "你好"。整个代码风格简洁明了,符合团队习惯。更棒的是,我们几乎没有亲自动手写代码 ------ 只用自然语言描述需求,Cursor 结合规则与记忆就生成了高质量的初始代码,大大节省了时间。
接下来,我们可以继续使用 Cursor 的 Commands 功能:让它解释 一下这段代码是否有改进空间,或者直接要求它生成对应的测试用例 来验证不同语言场景下的输出是否正确。通过这样人机协作的迭代开发,后端工程师能够更快地完成功能,同时确保代码质量和规范一致性。
结语
对于后端开发者来说,Cursor 不仅是一个代码编辑器,更像是一个贴身的AI助手。在日常开发中善用 Rules 、Memories 和 Commands 三大功能,我们可以:
- 将项目特定的**最佳实践和规约**内置到AI中(Rules),让AI写出的代码风格统一、少踩雷 。
- 赋予AI对**项目上下文的持久记忆**(Memories),无论隔多久接着聊,AI都记得住项目的重要信息 。
- 通过自然语言的**指令快捷操作**(Commands),迅速完成代码重构、分析和测试等工作 ,把更多精力放在业务逻辑上。
当然,AI 再强大也不是万能的,我们仍需要发挥工程师的判断力。但可以确信的是:与 Cursor 合作编码,会让你事半功倍。未来 AI 将成为你身边的一个专家助理,而你只需要负责准确的告诉它按照你的规范去实现即可!所以,这里我预测未来快则 1 年慢则 3 年架构师将逐步退出舞台,只要你能熟练使用 AI 工具,写出的代码将达到专家水平!
希望这篇经验分享能帮助你在后端开发中更高效地驾驭 Cursor,让 AI 成为真正可靠的编程拍档。Happy Coding!