logo

Composer 多文件编辑

Composer 是 Cursor 最强大的功能,让你能够用自然语言描述需求,AI 会帮你同时修改多个文件来实现复杂功能。

打开 Composer

操作macOSWindows/Linux
打开 ComposerCmd + ICtrl + I
全局 ComposerCmd + Shift + ICtrl + Shift + I

Composer vs Chat 的区别

特性ChatComposer
多文件编辑❌ 单文件✅ 多文件
实时预览
代码应用需手动一键应用
适用场景问答、小修改功能实现、重构

基础用法

创建新功能

> 创建一个用户登录表单组件,包含:
> - 邮箱和密码输入框
> - 表单验证
> - 提交按钮和 loading 状态
> - 使用 React Hook Form
> - Tailwind CSS 样式

Composer 会自动:

  1. 创建新组件文件
  2. 添加必要的类型定义
  3. 实现表单逻辑
  4. 更新相关导入

修改现有代码

> @src/components/UserList.tsx
> 修改这个组件:
> 1. 添加分页功能
> 2. 添加搜索过滤
> 3. 优化性能,使用 useMemo

重构代码

> @src/services/api.ts
> 重构这个文件:
> 1. 将 API 调用改为使用 axios
> 2. 添加统一的错误处理
> 3. 添加请求拦截器
> 4. 创建对应的 TypeScript 类型

高级功能

指定文件范围

使用 @ 符号指定要操作的文件:

> @src/hooks/ @src/components/
> 在这些文件中:
> 1. 将所有 useState 改为 useReducer
> 2. 统一错误处理方式

Agent 模式

Composer 支持 Agent 模式,可以自主探索和修改:

> [启用 Agent 模式]
> 实现一个完整的购物车功能,包括:
> - 添加/删除商品
> - 修改数量
> - 计算总价
> - 持久化到 localStorage

Agent 会自动:

  • 分析项目结构
  • 确定需要修改的文件
  • 创建缺失的文件
  • 更新依赖导入

预览和确认

Composer 生成代码后会显示预览:

  1. 查看差异: 点击文件名查看具体更改
  2. 逐个确认: 可以选择应用哪些更改
  3. 编辑后应用: 可以在预览中手动修改
  4. 一键应用: 确认无误后全部应用

最佳实践

1. 详细描述需求

❌ 模糊描述
> 添加一个表单

✅ 详细描述
> 创建用户注册表单 (src/components/RegisterForm.tsx)
>
> 功能要求:
> - 字段:用户名、邮箱、密码、确认密码
> - 验证:必填、邮箱格式、密码至少 8 位、两次密码一致
> - 提交后调用 @src/services/auth.ts 中的 register API
>
> 技术要求:
> - 使用 react-hook-form + zod
> - Tailwind CSS 样式
> - 显示 loading 和错误状态

2. 提供上下文

> 参考 @src/components/LoginForm.tsx 的风格,创建注册表单
> 使用同样的表单验证模式和样式规范

3. 分阶段实现

对于大型功能,分阶段请求:

阶段 1:> 创建数据模型和类型定义
阶段 2:> 实现 API 服务层
阶段 3:> 创建 UI 组件
阶段 4:> 添加状态管理
阶段 5:> 编写测试

4. 利用现有代码

> 基于 @src/components/ProductCard.tsx 的模式,
> 创建 CategoryCard、BrandCard、CollectionCard 三个组件
> 保持相同的样式和交互模式

常用场景

添加新页面

> 创建一个 Dashboard 页面:
> 1. 路由: /dashboard
> 2. 组件: src/pages/Dashboard/
> 3. 包含:统计卡片、图表、最近活动列表
> 4. 使用 @src/components/Layout 作为布局

数据库操作 (Prisma)

> 添加用户收藏功能:
> 1. 更新 schema.prisma,添加 Favorite 模型
> 2. 创建 @src/services/favorite.ts 服务
> 3. 添加 API 路由
> 4. 前端组件:收藏按钮

API 集成

> 集成 Stripe 支付:
> 1. 安装必要依赖
> 2. 创建 @src/services/stripe.ts
> 3. 添加结账流程组件
> 4. 处理 webhook 回调

常见问题

生成的代码有错误?

  1. 提供更多上下文
  2. 指定使用的库版本
  3. 给出代码示例参考

修改范围过大?

  1. 使用 @ 限定文件范围
  2. 分批次进行修改
  3. 先预览再应用

没有预期的更改?

  1. 检查描述是否清晰
  2. 确认文件路径正确
  3. 尝试重新描述需求

下一步

Cursor 完整指南
Vibe Coding

Cursor 完整指南

Cursor 是目前最流行的 AI 编程编辑器,基于 VS Code 打造。本指南将教你如何高效使用 Cursor 进行 AI 辅助编程。

Cursor 完整指南Composer 多文件编辑

Composer 多文件编辑

Composer 是 Cursor 最强大的功能,让你能够用自然语言描述需求,AI 会帮你同时修改多个文件来实现复杂功能。

#打开 Composer

操作macOSWindows/Linux
打开 ComposerCmd + ICtrl + I
全局 ComposerCmd + Shift + ICtrl + Shift + I

#Composer vs Chat 的区别

特性ChatComposer
多文件编辑❌ 单文件✅ 多文件
实时预览
代码应用需手动一键应用
适用场景问答、小修改功能实现、重构

#基础用法

#创建新功能

markdown
> 创建一个用户登录表单组件,包含: > - 邮箱和密码输入框 > - 表单验证 > - 提交按钮和 loading 状态 > - 使用 React Hook Form > - Tailwind CSS 样式

Composer 会自动:

  1. 创建新组件文件
  2. 添加必要的类型定义
  3. 实现表单逻辑
  4. 更新相关导入

#修改现有代码

markdown
> @src/components/UserList.tsx > 修改这个组件: > 1. 添加分页功能 > 2. 添加搜索过滤 > 3. 优化性能,使用 useMemo

#重构代码

markdown
> @src/services/api.ts > 重构这个文件: > 1. 将 API 调用改为使用 axios > 2. 添加统一的错误处理 > 3. 添加请求拦截器 > 4. 创建对应的 TypeScript 类型

#高级功能

#指定文件范围

使用 @ 符号指定要操作的文件:

markdown
> @src/hooks/ @src/components/ > 在这些文件中: > 1. 将所有 useState 改为 useReducer > 2. 统一错误处理方式

#Agent 模式

Composer 支持 Agent 模式,可以自主探索和修改:

markdown
> [启用 Agent 模式] > 实现一个完整的购物车功能,包括: > - 添加/删除商品 > - 修改数量 > - 计算总价 > - 持久化到 localStorage

Agent 会自动:

  • 分析项目结构
  • 确定需要修改的文件
  • 创建缺失的文件
  • 更新依赖导入

#预览和确认

Composer 生成代码后会显示预览:

  1. 查看差异: 点击文件名查看具体更改
  2. 逐个确认: 可以选择应用哪些更改
  3. 编辑后应用: 可以在预览中手动修改
  4. 一键应用: 确认无误后全部应用

#最佳实践

#1. 详细描述需求

markdown
❌ 模糊描述 > 添加一个表单 ✅ 详细描述 > 创建用户注册表单 (src/components/RegisterForm.tsx) > > 功能要求: > - 字段:用户名、邮箱、密码、确认密码 > - 验证:必填、邮箱格式、密码至少 8 位、两次密码一致 > - 提交后调用 @src/services/auth.ts 中的 register API > > 技术要求: > - 使用 react-hook-form + zod > - Tailwind CSS 样式 > - 显示 loading 和错误状态

#2. 提供上下文

markdown
> 参考 @src/components/LoginForm.tsx 的风格,创建注册表单 > 使用同样的表单验证模式和样式规范

#3. 分阶段实现

对于大型功能,分阶段请求:

markdown
阶段 1:> 创建数据模型和类型定义 阶段 2:> 实现 API 服务层 阶段 3:> 创建 UI 组件 阶段 4:> 添加状态管理 阶段 5:> 编写测试

#4. 利用现有代码

markdown
> 基于 @src/components/ProductCard.tsx 的模式, > 创建 CategoryCard、BrandCard、CollectionCard 三个组件 > 保持相同的样式和交互模式

#常用场景

#添加新页面

markdown
> 创建一个 Dashboard 页面: > 1. 路由: /dashboard > 2. 组件: src/pages/Dashboard/ > 3. 包含:统计卡片、图表、最近活动列表 > 4. 使用 @src/components/Layout 作为布局

#数据库操作 (Prisma)

markdown
> 添加用户收藏功能: > 1. 更新 schema.prisma,添加 Favorite 模型 > 2. 创建 @src/services/favorite.ts 服务 > 3. 添加 API 路由 > 4. 前端组件:收藏按钮

#API 集成

markdown
> 集成 Stripe 支付: > 1. 安装必要依赖 > 2. 创建 @src/services/stripe.ts > 3. 添加结账流程组件 > 4. 处理 webhook 回调

#常见问题

#生成的代码有错误?

  1. 提供更多上下文
  2. 指定使用的库版本
  3. 给出代码示例参考

#修改范围过大?

  1. 使用 @ 限定文件范围
  2. 分批次进行修改
  3. 先预览再应用

#没有预期的更改?

  1. 检查描述是否清晰
  2. 确认文件路径正确
  3. 尝试重新描述需求

#下一步

Vibe Coding

AI 编程体系课:工具、流程与最佳实践

从零搭建 AI 编程工作流,提升开发效率。

进入 Vibe Coding →

相关路线图

常见问题

Cursor 是免费的吗?
Cursor 提供免费版(Hobby)和付费版(Pro)。免费版可以使用基础的 AI 功能,但高级模型(如 Claude 3.5 Sonnet, GPT-4o)有使用次数限制。
Cursor 能直接导入 VS Code 的插件吗?
可以。Cursor 是基于 VS Code Fork 开发的,支持一键从 VS Code 迁移所有插件、主题和快捷键设置。
Cursor 的隐私模式安全吗?
Cursor 提供 "Privacy Mode",开启后你的代码不会被存储在服务器上,也不会用于训练模型,适合企业级开发。