Cursor 与 Windsurf
IDE Agent 工作流。
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),确认后代码直接落盘。