Cursor 与 Windsurf
这一课你将能做到
- 配置 Cursor 的 Rules(
.cursor/rules)让项目约定自动生效 - 用 Composer/Agent 模式完成一次多文件功能开发
- 说清楚 Cursor 与 Windsurf(Cascade)的核心差异和选型依据
为什么要学
Cursor 和 Windsurf 是目前主流的两款「AI 原生编辑器」——它们不是给编辑器加了个聊天窗口,而是把 AI 深度集成进编辑、检索、终端、多文件修改的每一步。2024 年以来,大量团队把主力 IDE 从 VS Code 迁到这两款工具上。
人话:Copilot 是「副驾帮你补全一句话」,Cursor/Windsurf 是「你口述需求,它直接改十个文件」。掌握它们的核心不是学快捷键,而是学会管理上下文——让 AI 在正确的文件、带着正确的约定干活。
这两款工具都是 VS Code 的分支(fork),你的插件、快捷键、设置基本能无缝迁移,学习成本主要在 AI 功能的使用模式上。
先建立图像
Cursor 的三层能力:
┌─────────────────────────────────────┐
│ Tab 补全:预测你下一步要改什么 │ ← 写代码时
│ Chat(Ctrl+L):问答、解释、生成片段 │ ← 问问题时
│ Composer/Agent(Ctrl+I):跨文件改动 │ ← 做功能时
└─────────────────────────────────────┘
↑ 全部受 Rules 文件约束
Windsurf 对应:
Tab 补全 / Chat / Cascade(Agent 模式)
跟着做
步骤 1:安装与迁移
从官网下载 Cursor(cursor.com)或 Windsurf(windsurf.com)。首次启动时两者都会提示「从 VS Code 导入」,一键带入你的插件、主题、快捷键。
步骤 2:配置项目 Rules
在项目根目录创建 .cursor/rules 目录,放一个 backend.mdc 文件:
---
description: 后端代码约定
globs: **/*.java
alwaysApply: false
---
- 使用 Spring Boot 3 + MyBatis-Plus
- 接口返回统一用 Result<T> 包装
- 所有时间字段用 LocalDateTime
- 禁止在 Controller 写业务逻辑,必须走 Service 层
- 新增依赖前先说明理由,等确认
头部 globs 决定规则作用于哪些文件,alwaysApply: true 的规则每次对话都带上(放全局约定,比如「用中文回复」)。Windsurf 的对应机制是 .windsurf/rules 目录和 Memories,概念相同。
步骤 3:用 Chat 做一次代码理解
打开一个不熟悉的类,按 Ctrl+L(Windsurf 是 Ctrl+L 或点击 Chat),输入:
@OrderService.java 这个类的职责是什么?
createOrder 方法的完整调用链是怎样的?
@ 符号是关键——它显式把文件加入上下文。还可以 @ 文件夹、文档、终端输出。不 @ 文件就提问,AI 只能靠猜,这是初学者输出质量差的第一大原因。
步骤 4:用 Composer/Agent 做一次多文件功能开发
按 Ctrl+I 打开 Composer(Cursor 新版叫 Agent),输入:
给文章模块加一个「置顶」功能:
1. Article 表加 is_top 字段(给建表迁移 SQL)
2. 列表查询按 is_top 降序、created_at 降序排列
3. 加 PUT /articles/{id}/top 接口切换置顶状态
涉及 entity、mapper、service、controller 四层,遵守项目 rules
AI 会列出要改的文件和每处的 diff。逐个确认(Accept)或拒绝(Reject),确认后代码直接落盘。
步骤 5:用 Cascade 体验 Windsurf 的 Agent 流
Windsurf 的 Cascade 会自己拆解步骤:先检索相关文件,再规划修改,逐步执行,每步可以暂停检查。做同一个「置顶」功能,观察它和 Cursor 的流程差异:Cascade 的「计划步骤」展示得更显性,适合喜欢盯流程的人。
步骤 6:验收与回滚
改动完成后:
- 让项目编译通过(AI 可以帮你跑终端命令)
- 启动服务,用 Postman 把三个接口各调一遍
- 不满意就
git checkout -- .回到上一个提交点——这就是「Git 与 AI 协作」一课强调的:AI 改动前先保证工作区干净。
讲清楚要点
- Rules 是这类工具的灵魂:没有 Rules,AI 每次都在猜你的约定;有了 Rules,约定自动注入每轮对话。Rules 文件要进 Git,团队共享。
@显式引用优于 AI 自动检索:自动检索(codebase indexing)方便但可能漏掉关键文件或带入无关文件。重要改动,手动 @ 明确范围。- Agent 模式的 diff 审查不可跳过:逐文件看 diff 再 Accept,一键全部接受等于放弃把关权。
- Tab 补全的价值被低估:它学习你的编辑模式,重复性改动(重命名联动、补相似代码)效率极高,而且不产生「生成一大段要审查」的负担。
- Cursor vs Windsurf 选型:两者能力高度重叠。Cursor 生态更大、迭代快、模型选择多;Windsurf 的 Cascade 流程可视化和定价有优势。个人开发者两款都试用一周再定;团队选型主要看采购与安全合规(代码是否出站、是否支持私有部署模型)。
你可能会懵的地方
-
Cursor 会自动读我整个代码库吗?安全吗? Cursor 会对代码库建索引(embeddings)用于检索,代码片段会发送到你选用的模型服务商。敏感项目:开启 Privacy Mode(不保留代码)、或用支持私有部署的模型方案。公司代码先过安全合规再谈效率。
-
Rules 和每次在聊天里重复要求有什么区别? 聊天里说的是一次性的,下个会话就没了;Rules 是持久注入的。而且 Rules 有 glob 匹配,可以「Java 文件用这套约定,前端文件用那套」。
-
Agent 改了一半我觉得方向不对,怎么办? 直接中断,Reject 所有未接受的 diff,git 恢复到干净状态,修正提示词(通常是上下文缺失)后重开。不要让它「将错就错改下去」。
-
Cursor 里选哪个模型? 日常用各家旗舰模型(Claude、GPT 系列)都可以,复杂重构用推理能力强的模型,简单补全用快模型省钱。模型能力迭代极快,以 Cursor 设置里当前可选列表为准。
-
免费的 VS Code + Copilot 能不能替代它们? Copilot 的 Agent 模式在快速追赶,基础场景重叠度越来越高。差异主要在上下文管理的精细度、Tab 补全质量和多模型选择。预算敏感的团队用 Copilot 也能覆盖 70% 场景。
错法对照
| 错法 | 问题 | 正解 |
|---|---|---|
| 不 @ 文件直接问「这个 bug 在哪」 | AI 盲猜整个代码库 | @ 相关文件/目录,缩小范围 |
| Rules 写几百行散文 | 关键约定被淹没,AI 抓不住 | 分文件、条目化、每条一句话 |
| Agent 一次提十个需求 | 改动面失控,diff 没法审 | 一次一个功能,验收后再下一个 |
| 全部 Accept 不看 diff | 幻觉代码直接进仓库 | 逐文件审查,重点看 import 和 SQL |
| 在脏工作区跑 Agent | 手改和 AI 改混在一起无法回滚 | 先 commit,再让 AI 动手 |
卡点急救
- AI 改完编译不过:把编译错误完整贴进 Chat,说「修复这些编译错误」,这类问题 AI 修复率极高。
- 检索不到刚创建的文件:代码库索引有延迟。手动 @ 该文件,或重建索引(Cursor: Settings → Features → Codebase Indexing → Resync)。
- Agent 陷入「改 A 弄坏 B,改 B 弄坏 A」的死循环:停止会话,git 回滚,把 A 和 B 两个文件都 @ 进去,一句话说清两者的约束关系,重新生成。
面试常问
-
你们团队怎么用 AI 编辑器?如何统一规范? 高分回答:Rules 文件进版本库统一管理,按技术栈分文件(backend.mdc / frontend.mdc);新人 onboarding 直接继承全套约定;定期回顾 AI 产出中的典型错误反哺 Rules(比如 AI 总爱用某个过时 API,就加一条禁止规则)。
-
AI 编辑器生成代码的知识产权和保密怎么控制? 开 Privacy Mode 或企业版(不用于训练);评估模型服务商的数据政策;涉密代码走内网部署的开源模型方案;Rules 里明确禁止把密钥、内部域名写入提示词。
-
Agent 模式重构老项目时要注意什么? 先保证测试覆盖或至少能编译验证;小步快跑,一次重构一个模块;每步 git 提交,回滚成本低才敢让 AI 放手改。
自测三问
.cursor/rules里globs和alwaysApply两个字段分别控制什么?- 为什么 Agent 模式改动前要确保 git 工作区干净?
- 团队选型 Cursor / Windsurf / Copilot 时,除了功能还要评估哪两个维度?
小结一句话
编辑器级 AI 的核心不是生成代码,而是管理上下文——Rules 定规矩,@ 定范围,diff 审查定质量。
延伸
- Cursor 官方文档:Rules
- Windsurf 官方文档:Cascade
- 下一课:Claude Code——终端里的 Agent,CLAUDE.md 与 Plan 模式。