cursor学习使用
Cursor 2.0 完整学习指南
零基础新手入门教程 - 全面覆盖 Cursor 2.0 所有功能
目录
- Cursor 2.0 简介
- 安装与配置
- 界面介绍
- 核心功能详解
- AI 功能深度解析
- 5.5 知识库功能(Knowledge Base)
- 5.6 上下文窗口管理
- 快捷键大全
- 高级技巧
- 7.9 VS Code 扩展兼容性
- 7.10 代码历史记录和版本对比
- 最佳实践
- 常见问题解答
- 实战案例
- 进阶学习资源
- 学习路径建议
- 总结
- 附录
1. Cursor 2.0 简介
1.1 什么是 Cursor?
Cursor 是一款基于 AI 的代码编辑器,由 Cursor AI 公司开发。它基于 VS Code 构建,但集成了强大的 AI 功能,可以帮助开发者更高效地编写代码。
1.2 Cursor 2.0 的核心特性
- AI 代码补全:智能预测和补全代码
- Chat 功能:与 AI 对话,获取代码建议
- Composer 模式:多文件编辑和重构
- @ 符号引用:引用文件、文件夹、代码、文档等上下文
- 知识库功能:整合外部文档和资料,增强 AI 理解
- 并行 Agent:多智能体并行工作,提供多种解决方案
- Git Worktree:支持多个工作目录,实现并行开发
- 代码解释:理解复杂代码逻辑
- 代码生成:从自然语言生成代码
- 代码审查:AI 辅助代码审查
- 上下文窗口管理:智能管理上下文,优化 AI 性能
- VS Code 扩展兼容:完全兼容 VS Code 扩展生态系统
- 代码历史记录:查看和恢复代码修改历史
- 多语言支持:支持几乎所有编程语言
1.3 Cursor 2.0 vs 其他编辑器
| 特性 | Cursor 2.0 | VS Code | GitHub Copilot |
|---|---|---|---|
| AI 代码补全 | ✓ | ✗ | ✓ |
| AI 对话 | ✓ | ✗ | ✗ |
| 多文件编辑 | ✓ | ✗ | ✗ |
| 代码解释 | ✓ | ✗ | ✗ |
| 免费使用 | ✓ (有限制) | ✓ | ✗ |
2. 安装与配置
2.1 系统要求
- 操作系统:Windows 10/11, macOS 10.15+, Linux
- 内存:建议 8GB 以上
- 存储空间:至少 500MB 可用空间
2.2 下载安装
- 访问 https://cursor.com/cn
- 点击 “Download” 按钮
- 选择对应操作系统的安装包
- 运行安装程序,按照提示完成安装
2.3 首次启动配置
2.3.1 登录账户
- 启动 Cursor 后,会提示登录或注册
- 可以使用 GitHub、Google 或邮箱注册
- 免费账户有使用限制,付费账户功能更完整
2.3.2 选择主题
- 打开设置:Ctrl+, (Windows/Linux) 或 Cmd+, (macOS)
- 搜索 “Color Theme”
- 选择喜欢的主题(推荐:Dark+、Monokai)
2.3.3 配置 AI 模型
- 打开设置
- 搜索 “AI Model” 或 “Model”
- 选择模型:
- Claude 3.5 Sonnet:推荐,平衡性能和速度
- GPT-4:高质量但较慢
- GPT-3.5 Turbo:快速但质量较低
2.3.4 设置 API Key(可选)
如果需要使用自己的 API Key:
- 打开设置
- 搜索 “API Key”
- 输入你的 OpenAI 或 Anthropic API Key
3. 界面介绍
3.1 主界面布局
┌─────────────────────────────────────────────────┐
│ 菜单栏 (File Edit View ...) │
├──────────┬──────────────────────┬───────────────┤
│ │ │ │
│ 侧边栏 │ 编辑区 │ 侧边栏 │
│ │ │ (可选) │
│ - 文件 │ │ │
│ - 搜索 │ 代码编辑区 │ │
│ - Git │ │ │
│ - 扩展 │ │ │
│ │ │ │
│ ├──────────────────────┤ │
│ │ 终端/输出 │ │
└──────────┴──────────────────────┴───────────────┘
3.2 主要区域说明
3.2.1 侧边栏(Activity Bar)
- 文件资源管理器:浏览项目文件
- 搜索:全局搜索代码
- 源代码管理:Git 版本控制
- 运行和调试:调试代码
- 扩展:安装和管理扩展
3.2.2 编辑区
- 标签页:显示打开的文件
- 代码编辑器:编写代码的主要区域
- 行号:显示行号,方便定位
3.2.3 状态栏
- 分支信息:当前 Git 分支
- 错误/警告:代码问题提示
- 语言模式:当前文件的语言
- AI 状态:AI 功能状态指示
3.3 AI 功能面板
3.3.1 Chat 面板
- 位置:右侧或底部面板
- 快捷键:Ctrl+L (Windows/Linux) 或 Cmd+L (macOS)
- 功能:与 AI 对话,获取代码帮助
3.3.2 Composer 面板
- 位置:底部面板
- 快捷键:Ctrl+I (Windows/Linux) 或 Cmd+I (macOS)
- 功能:多文件编辑和重构
4. 核心功能详解
4.1 AI 代码补全(Tab 补全)
4.1.1 什么是 Tab 补全?
当你输入代码时,Cursor 会自动预测你想要写的代码,并在编辑器中显示灰色提示。按 Tab 键接受建议。
4.1.2 使用方法
- 自动触发:输入代码时自动出现
- 接受建议:按 Tab 键
- 拒绝建议:继续输入,建议会自动消失
- 查看多个建议:按 Ctrl+→ 或 Ctrl+← 切换
4.1.3 示例
// 输入:function calculate
// AI 建议:function calculateSum(a, b) { return a + b; }
// 按 Tab 接受
4.1.4 配置选项
- 启用/禁用:设置 → “Cursor Tab” → 启用
- 触发延迟:设置延迟时间(默认 100ms)
- 建议数量:显示多少个建议
4.2 Chat 功能
4.2.1 打开 Chat
- 快捷键:Ctrl+L (Windows/Linux) 或 Cmd+L (macOS)
- 点击图标:侧边栏的 Chat 图标
- 命令面板:Ctrl+Shift+P → 输入 “Chat”
4.2.2 Chat 的使用场景
-
代码解释
用户:解释这段代码的作用 AI:[解释代码逻辑] -
代码调试
用户:为什么这段代码报错? AI:[分析错误原因并提供解决方案] -
代码优化
用户:如何优化这段代码? AI:[提供优化建议和代码] -
学习新技术
用户:如何使用 React Hooks? AI:[提供教程和示例]
4.2.3 Chat 的高级功能
4.2.3.1 代码引用和 @ 符号功能
@ 符号概述:在 Cursor 中,@ 符号用于引用特定的上下文信息,帮助 AI 更好地理解您的需求。在 Chat 或 Composer 中输入 @ 时,系统会显示可用的选项列表。
常用 @ 符号类型:
-
@Files(文件引用)
- 引用项目中的特定文件
- 使用方法:@文件名 或 @文件路径
- 示例:@App.js 或 @src/components/Button.jsx
- AI 会读取文件内容作为上下文
-
@Folders(文件夹引用)
- 引用整个文件夹及其所有内容
- 使用方法:@文件夹名 或 @文件夹路径
- 示例:@src/components 或 @utils
- AI 会分析文件夹中的所有文件
-
@Code(代码片段引用)
- 引用选中的代码片段
- 使用方法:选中代码后,在 Chat 中输入问题
- Cursor 会自动添加 @Code 引用
- 适合解释、优化和修改特定代码
-
@Docs(文档引用)
- 引用项目中的文档文件
- 使用方法:@README.md 或 @docs/guide.md
- AI 会参考文档内容回答问题
- 适合项目规范、API 文档等
-
@Git(Git 引用)
- 引用 Git 版本控制信息
- 使用方法:@Git 或 @Git:commit_hash
- 可以查看提交记录、分支信息
- 适合代码审查、版本对比
-
@Web(网络搜索)
- 从互联网获取最新信息
- 使用方法:@Web 后输入问题
- AI 会搜索网络获取实时信息
- 适合获取最新技术文档、API 更新等
使用技巧:
-
多文件引用:可以同时引用多个文件
@App.js @Button.jsx 请解释这两个文件的关系 -
组合使用:可以组合不同类型的引用
@src/components @README.md 根据文档规范重构组件 -
自动补全:输入 @ 后,Cursor 会自动显示可用的文件和文件夹列表
-
模糊搜索:输入部分文件名,Cursor 会显示匹配的文件
实际应用示例:
-
解释特定文件
@utils/helpers.js 解释这个文件中的所有函数 -
跨文件分析
@App.js @components/Header.jsx 这两个文件如何交互? -
参考文档开发
@docs/api.md 根据文档创建 API 客户端 -
获取最新信息
@Web React 18 的最新特性有哪些? -
代码审查
@Git:abc123 审查这次提交的代码
4.2.3.2 上下文理解
- Chat 会自动理解当前文件的上下文
- 可以询问关于整个项目的问题
- 支持多文件上下文
4.2.3.3 代码生成
- 在 Chat 中描述需求
- AI 生成代码
- 点击 “Insert” 插入代码
4.2.4 Chat 命令
/fix:修复代码错误/explain:解释代码/refactor:重构代码/test:生成测试代码/doc:生成文档
4.3 Composer 模式
4.3.1 什么是 Composer?
Composer 是 Cursor 2.0 的核心功能,允许 AI 同时编辑多个文件,进行大规模代码重构。
4.3.2 打开 Composer
- 快捷键:Ctrl+I (Windows/Linux) 或 Cmd+I (macOS)
- 命令面板:Ctrl+Shift+P → “Composer”
4.3.3 Composer 的使用场景
-
多文件重构
用户:将所有函数改为箭头函数 AI:[修改所有相关文件] -
添加新功能
用户:添加用户登录功能,需要创建 login.js 和 login.css AI:[创建并编辑多个文件] -
代码迁移
用户:将 JavaScript 代码迁移到 TypeScript AI:[修改所有文件并添加类型]
4.3.4 Composer 工作流程
- 输入需求:在 Composer 中输入自然语言描述
- AI 分析:AI 分析需要修改的文件
- 预览更改:查看 AI 计划做的更改
- 确认执行:点击 “Accept” 接受更改
- 审查结果:检查修改后的代码
4.3.5 Composer 最佳实践
- 明确描述:尽可能详细地描述需求
- 分步执行:复杂任务分多步完成
- 审查更改:仔细检查 AI 的修改
- 使用版本控制:使用 Git 管理更改
4.4 代码解释功能
4.4.1 选中代码解释
- 选中要解释的代码
- 右键 → “Explain Code”
- 或使用快捷键:Ctrl+K → E
4.4.2 在 Chat 中解释
- 选中代码
- 打开 Chat (Ctrl+L)
- 输入 “解释这段代码”
- AI 会自动引用选中的代码并解释
4.5 代码生成功能
4.5.1 从注释生成代码
// 创建一个函数,计算两个数的和
// 输入上面的注释后,按 Ctrl+K,AI 会生成代码
4.5.2 从需求生成代码
- 在 Chat 中描述需求
- AI 生成代码
- 点击 “Insert” 插入
4.5.3 生成测试代码
用户:为这个函数生成单元测试
AI:[生成测试代码]
4.6 代码审查功能
4.6.1 审查单个文件
- 打开文件
- Chat 中输入:/review 或 “审查这段代码”
- AI 提供审查意见
4.6.2 审查整个项目
- 在 Chat 中:@项目名 审查整个项目
- AI 分析项目结构和代码质量
4.7 核心快捷键对比详解
4.7.1 Ctrl+I vs Ctrl+L:Chat 与 Composer 的区别
快速对比表
| 特性 | Ctrl+L (Chat) | Ctrl+I (Composer) |
|---|---|---|
| 主要功能 | AI 对话助手 | 多文件代码编辑 |
| 使用场景 | 问答、解释、调试 | 重构、批量修改、新功能开发 |
| 编辑范围 | 单文件或对话式修改 | 多文件同时编辑 |
| 交互方式 | 对话式,一问一答 | 一次性完成复杂任务 |
| 适用任务 | 简单修改、学习、咨询 | 大规模重构、跨文件修改 |
Ctrl+L - Chat(聊天助手)
功能定位:Chat 是一个对话式的 AI 助手,类似于与一个懂代码的同事聊天。
主要特点:
-
对话式交互
- 可以连续对话
- 可以追问和澄清
- 适合学习和探索
-
单文件编辑为主
- 通常一次修改一个文件
- 可以插入代码片段
- 可以解释和优化代码
-
即时反馈
- 快速回答简单问题
- 提供代码建议
- 解释代码逻辑
使用场景示例:
适合用 Chat 的场景:
- 代码解释:选中代码后问"这段代码是做什么的?"
- 简单修改:“把这个函数改成箭头函数”
- 调试问题:“为什么这段代码报错?”
- 学习新技术:“React Hooks 怎么用?”
- 代码优化建议:“如何优化这个函数?”
Chat 界面特点:
- 显示在右侧或底部面板
- 有对话历史记录
- 可以引用文件:@文件名
- 可以引用代码:选中代码后提问
Ctrl+I - Composer(多文件编辑器)
功能定位:Composer 是一个强大的多文件编辑工具,可以同时修改多个文件,完成复杂的重构任务。
主要特点:
-
多文件同时编辑
- 可以同时修改多个文件
- 保持文件间的一致性
- 自动更新相关引用
-
一次性完成复杂任务
- 不需要多次对话
- 一次性描述完整需求
- AI 自动规划修改方案
-
预览和确认
- 显示将要修改的文件列表
- 预览所有更改
- 确认后统一应用
使用场景示例:
适合用 Composer 的场景:
- 大规模重构:“将所有类组件改为函数组件”
- 添加新功能(涉及多文件):“添加用户登录功能,需要创建 login.jsx、login.css,并在 App.jsx 中集成”
- 代码迁移:“将 JavaScript 代码迁移到 TypeScript”
- 重命名和重构:“将所有 userName 改为 username”
- 创建完整功能模块:一次性创建多个相关文件
Composer 界面特点:
- 显示在底部面板
- 显示文件修改列表
- 可以预览所有更改
- 一次性应用所有更改
选择建议
什么时候用 Chat (Ctrl+L)?
- ✓ 简单的问题和修改
- ✓ 需要对话和澄清
- ✓ 探索性编程
- ✓ 学习新技术
什么时候用 Composer (Ctrl+I)?
- ✓ 复杂的多文件任务
- ✓ 大规模重构
- ✓ 添加完整功能模块
- ✓ 需要一次性完成
记忆技巧
-
Ctrl+L = Like Learning(学习/对话)
- 像和老师聊天一样,一问一答
-
Ctrl+I = Integrated(集成/多文件)
- 集成多个文件,一次性完成复杂任务
4.7.2 Ctrl+L vs Ctrl+K:Chat 与代码生成的区别
快速对比表
| 特性 | Ctrl+L (Chat) | Ctrl+K (代码生成) |
|---|---|---|
| 主要功能 | AI 对话助手 | 内联代码生成和编辑 |
| 使用方式 | 打开对话面板 | 在编辑器中直接操作 |
| 交互方式 | 对话式,一问一答 | 快速命令式操作 |
| 编辑位置 | 面板中显示,需插入 | 直接在光标位置生成 |
| 适用场景 | 复杂问题、多轮对话 | 快速生成、解释、重构 |
Ctrl+L - Chat(对话面板)
功能定位:打开一个独立的对话面板,与 AI 进行多轮对话。
主要特点:
-
独立面板
- 打开一个专门的对话窗口
- 可以查看对话历史
- 可以引用多个文件
-
多轮对话
- 可以连续提问
- 可以追问和澄清
- 适合复杂问题
-
代码插入
- AI 生成代码后
- 需要点击 “Insert” 插入
- 可以预览后再插入
使用场景:
- 需要多轮对话的复杂问题
- 需要引用多个文件
- 需要查看对话历史
- 学习和探索性编程
示例:
1. 按 Ctrl+L 打开 Chat
2. 输入:"解释这段代码的作用"
3. AI 回答后,继续问:"如何优化?"
4. AI 提供优化方案
5. 点击 "Insert" 插入代码
Ctrl+K - 代码生成(内联操作)
功能定位:在编辑器中直接触发 AI 操作,无需打开面板。
主要特点:
-
内联操作
- 直接在编辑器中操作
- 不打开额外面板
- 更快速便捷
-
快速命令
- Ctrl+K:触发代码生成
- Ctrl+K E:解释代码
- Ctrl+K R:重构代码
- Ctrl+K S:保存所有文件
-
即时生成
- 代码直接生成在光标位置
- 或替换选中的代码
- 无需额外操作
使用场景:
- 快速生成代码
- 快速解释代码
- 快速重构代码
- 需要保持编辑流程不中断
常用组合键
| 快捷键 | 功能 | 说明 |
|---|---|---|
| Ctrl+K | 触发代码生成 | 在注释后按,生成代码 |
| Ctrl+K E | 解释代码 | 选中代码后按,快速解释 |
| Ctrl+K R | 重构代码 | 选中代码后按,快速重构 |
| Ctrl+K S | 保存所有文件 | 保存所有打开的文件 |
示例:
-
从注释生成代码
// 创建一个函数,计算两个数的和 // 输入上面的注释后,按 Ctrl+K,AI 会生成代码 -
快速解释代码
1. 选中代码 2. 按 Ctrl+K,然后按 E 3. AI 在编辑器中显示解释 -
快速重构代码
1. 选中代码 2. 按 Ctrl+K,然后按 R 3. AI 直接重构代码
选择建议
什么时候用 Chat (Ctrl+L)?
- ✓ 需要多轮对话
- ✓ 需要引用多个文件
- ✓ 复杂的问题需要讨论
- ✓ 需要查看对话历史
- ✓ 学习和探索
什么时候用 Ctrl+K?
- ✓ 快速生成代码
- ✓ 快速解释代码
- ✓ 快速重构代码
- ✓ 不想打断编辑流程
- ✓ 简单直接的操作
实际使用对比
场景:解释一段代码
使用 Chat (Ctrl+L):
1. 选中代码
2. 按 Ctrl+L 打开 Chat
3. 输入:"解释这段代码"
4. AI 在面板中回答
5. 可以继续提问
使用 Ctrl+K E:
1. 选中代码
2. 按 Ctrl+K,然后按 E
3. AI 直接在编辑器中显示解释
4. 更快,但无法继续对话
结论:
- 需要详细解释和多轮对话 → 用 Chat ✓
- 快速了解代码作用 → 用 Ctrl+K E ✓
记忆技巧
-
Ctrl+L = Long Learning(长时间学习/对话)
- 打开对话面板,可以多轮对话
-
Ctrl+K = Keyboard Command(键盘命令)
- 快速命令,直接在编辑器中操作
总结对比
| 维度 | Chat (Ctrl+L) | Ctrl+K |
|---|---|---|
| 打开方式 | 打开对话面板 | 编辑器内操作 |
| 交互方式 | 多轮对话 | 单次命令 |
| 代码位置 | 面板中,需插入 | 直接生成 |
| 适用场景 | 复杂问题 | 快速操作 |
| 速度 | 较慢(需打开面板) | 快速(直接操作) |
简单记住:
- Chat (Ctrl+L) = 对话助手,适合复杂问题和多轮对话
- Ctrl+K = 快速命令,适合简单快速的操作
5. AI 功能深度解析
5.1 代码补全引擎
5.1.1 工作原理
- 上下文分析:分析当前文件和项目上下文
- 模式识别:识别代码模式和风格
- 预测生成:生成最可能的代码补全
- 实时更新:根据你的输入实时更新建议
5.1.2 提高补全质量
- 编写清晰的代码:代码越清晰,补全越准确
- 使用有意义的变量名:帮助 AI 理解代码意图
- 添加注释:注释提供额外上下文
- 保持代码风格一致:AI 会学习你的风格
5.2 上下文理解
5.2.1 文件级上下文
- Cursor 会分析当前打开的文件
- 理解文件中的函数、变量、类等
- 基于文件内容提供建议
5.2.2 项目级上下文
- 分析整个项目结构
- 理解文件之间的关系
- 跨文件引用和补全
5.2.3 代码库索引
什么是代码库索引?
Cursor 会自动索引你的代码库,建立代码结构、函数、类、变量等的索引,以便快速查找相关代码并提供更准确的 AI 建议。
索引的工作原理:
- 自动索引:打开项目时,Cursor 会自动扫描并索引代码库
- 增量更新:文件修改后,索引会自动更新
- 语义理解:不仅索引代码结构,还理解代码的语义关系
- 跨文件关联:建立文件之间的引用关系
索引包含的内容:
- 函数和类定义:所有函数、类、方法的定义位置
- 变量和常量:变量声明和使用位置
- 导入和导出:模块之间的依赖关系
- 代码模式:常见的代码模式和结构
- 注释和文档:代码注释和文档字符串
如何提高索引效率:
-
保持代码结构清晰:
- 使用有意义的文件名和文件夹结构
- 保持函数和类的命名规范
- 添加适当的注释
-
优化项目大小:
- 排除不必要的文件(使用 .gitignore 或 .cursorignore)
- 避免索引大型二进制文件
- 合理组织项目结构
-
配置索引范围:
- 在设置中配置需要索引的文件类型
- 排除 node_modules、dist 等构建产物目录
索引状态查看:
- 状态栏会显示索引进度
- 索引完成后,AI 建议会更准确
- 大型项目可能需要几分钟完成初始索引
常见问题:
- 索引速度慢:检查项目大小,排除不必要的文件
- 索引不完整:等待索引完成,或手动触发重新索引
- 内存占用高:减少索引的文件数量或类型
5.3 多文件编辑
5.3.1 文件选择
在 Composer 中:
- 使用 @文件名 指定要编辑的文件
- 或让 AI 自动选择相关文件
5.3.2 同步编辑
- AI 可以同时修改多个文件
- 保持文件间的一致性
- 自动更新引用
5.4 代码重构
5.4.1 重命名
用户:将所有的 userName 重命名为 username
AI:[在所有文件中重命名]
5.4.2 提取函数
用户:将这段代码提取为一个函数
AI:[创建新函数并替换原代码]
5.4.3 代码优化
用户:优化这段代码的性能
AI:[提供优化方案]
5.5 知识库功能(Knowledge Base)
5.5.1 什么是知识库?
知识库是 Cursor 2.0 的高级功能,允许你将外部文档、网站、笔记等资料整合到 Cursor 的知识库中,让 AI 助手能够基于这些资料提供更精准的回答和建议。
5.5.2 知识库的核心价值
- 项目文档集成:将 API 文档、设计规范、项目文档等整合到知识库
- 团队知识共享:团队成员可以共享知识库,统一项目理解
- 上下文增强:AI 可以基于知识库内容提供更准确的代码建议
- 跨项目复用:知识库可以在多个项目间复用
5.5.3 创建和管理知识库
创建知识库:
- 打开设置:Ctrl+, (Windows/Linux) 或 Cmd+, (macOS)
- 搜索 “Knowledge Base” 或"知识库"
- 点击 “Create Knowledge Base” 创建新知识库
- 输入知识库名称和描述
添加内容到知识库:
-
添加文件:
- 点击知识库设置中的 “Add Files”
- 选择要添加的文档文件(支持 .md、.txt、.pdf 等格式)
- Cursor 会自动解析文件内容
-
添加网站:
- 点击 “Add URL”
- 输入网站 URL
- Cursor 会抓取网站内容并添加到知识库
-
添加文件夹:
- 选择整个文件夹
- Cursor 会索引文件夹中的所有文档
-
手动输入:
- 直接在知识库中粘贴文本内容
- 适合添加笔记、规范等
5.5.4 在 Chat 中使用知识库
引用知识库:
在 Chat 中使用 @Knowledge Base 或 @知识库名称:
@Knowledge Base 根据项目规范创建用户登录组件
自动引用:
- Chat 会自动检测是否需要引用知识库
- 当问题涉及项目规范、API 文档等时,会自动引用相关知识库
示例场景:
-
参考 API 文档开发:
@API文档 根据文档创建用户认证 API 客户端 -
遵循设计规范:
@设计规范 创建符合规范的按钮组件 -
参考技术文档:
@技术文档 如何实现文件上传功能?
5.5.5 在 Composer 中使用知识库
在 Composer 中也可以引用知识库:
@Knowledge Base 根据项目架构规范重构代码结构
Composer 会基于知识库内容生成符合规范的代码。
5.5.6 知识库最佳实践
内容组织:
-
分类管理:为不同类型的文档创建不同的知识库
- API 文档知识库
- 设计规范知识库
- 技术文档知识库
- 项目规范知识库
-
定期更新:保持知识库内容的最新状态
-
精简内容:只添加必要的文档,避免知识库过大
命名规范:
- 使用描述性的知识库名称
- 例如:
项目API文档、React组件规范、数据库设计规范
团队协作:
- 共享知识库给团队成员
- 统一项目理解和代码规范
- 减少重复解释和沟通成本
5.5.7 知识库配置选项
索引设置:
- 自动索引:文件添加后自动索引
- 手动索引:需要时手动触发索引
- 索引频率:设置索引更新频率
内容过滤:
- 排除特定文件类型
- 设置文件大小限制
- 配置索引深度
隐私设置:
- 设置知识库访问权限
- 控制知识库共享范围
5.5.8 实际应用示例
示例:创建项目知识库
-
创建知识库:
- 名称:
React项目规范 - 描述:包含组件规范、代码风格、最佳实践
- 名称:
-
添加内容:
- 添加
组件规范.md - 添加
代码风格指南.md - 添加
API文档.md
- 添加
-
使用知识库:
@React项目规范 创建一个符合规范的用户卡片组件 -
AI 响应:
- AI 会参考知识库中的规范
- 生成符合项目规范的代码
- 自动应用代码风格和最佳实践
5.6 上下文窗口管理
5.6.1 什么是上下文窗口?
上下文窗口是指 AI 在处理请求时能够"看到"的代码和文档的范围。Cursor 会智能管理上下文窗口,确保 AI 能够访问到最相关的信息。
5.6.2 上下文窗口的工作原理
自动上下文选择:
- Cursor 会自动分析当前文件和相关文件
- 根据代码引用关系选择相关上下文
- 优先包含当前编辑的文件和直接引用的文件
上下文大小限制:
- 不同模型有不同的上下文窗口限制
- Cursor 会智能压缩和优化上下文
- 超出限制时会自动选择最重要的部分
上下文更新:
- 文件修改后,上下文会自动更新
- 切换文件时,上下文会相应调整
- 保持上下文与当前任务的相关性
5.6.3 手动管理上下文
使用 @ 符号指定上下文:
@App.js @utils/helpers.js 解释这两个文件的关系
排除不需要的上下文:
- 在设置中配置忽略的文件和文件夹
- 使用 .cursorignore 文件排除文件
- 避免大型依赖库占用上下文空间
5.6.4 优化上下文使用
减少上下文大小:
-
排除不必要文件:
- 在 .cursorignore 中添加 node_modules、dist 等
- 排除大型二进制文件
- 排除测试文件(如不需要)
-
使用精确引用:
- 使用 @文件名 精确指定需要的文件
- 避免引用整个文件夹(除非必要)
-
分步骤处理:
- 将大任务分解为小步骤
- 每次只处理相关的文件
提高上下文质量:
-
保持代码清晰:
- 使用有意义的变量名
- 添加适当的注释
- 保持代码结构清晰
-
组织项目结构:
- 合理的文件夹结构
- 清晰的模块划分
- 避免过深的嵌套
5.6.5 上下文窗口配置
查看上下文使用情况:
- 在 Chat 或 Composer 中可以看到使用的上下文大小
- 状态栏显示当前上下文状态
配置上下文选项:
- 打开设置:Ctrl+,
- 搜索 “Context” 或"上下文"
- 配置以下选项:
- 最大上下文大小:设置上下文窗口的最大值
- 自动包含文件:配置自动包含的文件类型
- 排除模式:设置排除的文件和文件夹模式
5.6.6 常见问题
Q: 上下文窗口太小怎么办?
A:
- 使用更精确的 @ 引用,只包含必要的文件
- 排除不必要的大型文件
- 考虑升级到支持更大上下文的模型
Q: AI 没有看到我需要的文件?
A:
- 使用 @文件名 明确指定文件
- 检查文件是否在排除列表中
- 确保文件已保存
Q: 如何查看当前使用的上下文?
A:
- 在 Chat 或 Composer 中查看上下文指示器
- 检查状态栏的上下文信息
6. 快捷键大全
6.1 通用快捷键
| 功能 | Windows/Linux | macOS |
|---|---|---|
| 打开命令面板 | Ctrl+Shift+P | Cmd+Shift+P |
| 打开设置 | Ctrl+, | Cmd+, |
| 打开文件 | Ctrl+P | Cmd+P |
| 保存文件 | Ctrl+S | Cmd+S |
| 保存所有文件 | Ctrl+K S | Cmd+K S |
| 关闭编辑器 | Ctrl+W | Cmd+W |
| 切换侧边栏 | Ctrl+B | Cmd+B |
6.2 AI 功能快捷键
| 功能 | Windows/Linux | macOS |
|---|---|---|
| 打开 Chat | Ctrl+L | Cmd+L |
| 打开 Composer | Ctrl+I | Cmd+I |
| 接受 AI 建议 | Tab | Tab |
| 拒绝 AI 建议 | Esc | Esc |
| 下一个建议 | Ctrl+→ | Ctrl+→ |
| 上一个建议 | Ctrl+← | Ctrl+← |
| 触发代码生成 | Ctrl+K | Cmd+K |
| 解释代码 | Ctrl+K E | Cmd+K E |
| 重构代码 | Ctrl+K R | Cmd+K R |
6.3 编辑快捷键
| 功能 | Windows/Linux | macOS |
|---|---|---|
| 复制行 | Shift+Alt+↓ | Shift+Option+↓ |
| 移动行 | Alt+↓ | Option+↓ |
| 删除行 | Ctrl+Shift+K | Cmd+Shift+K |
| 多光标 | Alt+Click | Option+Click |
| 选择所有匹配 | Ctrl+Shift+L | Cmd+Shift+L |
| 格式化文档 | Shift+Alt+F | Shift+Option+F |
6.4 导航快捷键
| 功能 | Windows/Linux | macOS |
|---|---|---|
| 跳转到定义 | F12 | F12 |
| 查看引用 | Shift+F12 | Shift+F12 |
| 跳转到符号 | Ctrl+Shift+O | Cmd+Shift+O |
| 跳转到行 | Ctrl+G | Ctrl+G |
| 切换文件 | Ctrl+Tab | Ctrl+Tab |
6.5 自定义快捷键
- 打开设置:Ctrl+,
- 搜索 “Keyboard Shortcuts”
- 点击 “Open Keyboard Shortcuts”
- 搜索要修改的命令
- 双击设置新快捷键
7. 高级技巧
7.1 使用 .cursorrules 文件
7.1.1 什么是 .cursorrules?
.cursorrules 是一个配置文件,用于告诉 Cursor 你的项目规则和偏好。
7.1.2 创建 .cursorrules
在项目根目录创建 .cursorrules 文件:
# 代码风格
- 使用 2 个空格缩进
- 使用单引号
- 函数名使用驼峰命名
# 项目规则
- 所有 API 调用必须包含错误处理
- 组件必须包含 PropTypes
- 使用 TypeScript 类型
# AI 行为
- 生成代码时添加注释
- 优先使用现代 JavaScript 特性
7.1.3 示例配置
# React 项目规则
## 代码风格
- 使用函数组件和 Hooks
- 使用 TypeScript
- 组件文件使用 PascalCase
- 工具函数使用 camelCase
## 最佳实践
- 所有组件必须有 PropTypes 或 TypeScript 类型
- 使用 React.memo 优化性能
- API 调用使用 async/await
- 错误处理必须完善
## 禁止事项
- 不要使用 class 组件
- 不要使用 var
- 不要使用 any 类型(除非必要)
7.2 使用代码片段(Snippets)
7.2.1 创建代码片段
- 打开命令面板:Ctrl+Shift+P
- 输入 “Configure User Snippets”
- 选择语言
- 添加代码片段
7.2.2 代码片段示例
{
"React Functional Component": {
"prefix": "rfc",
"body": [
"import React from 'react';",
"",
"const ${1:ComponentName} = () => {",
" return (",
" <div>",
" $0",
" </div>",
" );",
"};",
"",
"export default ${1:ComponentName};"
],
"description": "React Functional Component"
}
}
7.3 使用任务(Tasks)
7.3.1 配置任务
创建 .vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "启动开发服务器",
"type": "shell",
"command": "npm start",
"problemMatcher": []
},
{
"label": "运行测试",
"type": "shell",
"command": "npm test",
"problemMatcher": []
}
]
}
7.3.2 运行任务
- Ctrl+Shift+P → “Run Task”
- 选择要运行的任务
7.4 使用调试功能
7.4.1 配置调试
创建 .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "启动程序",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/index.js"
}
]
}
7.4.2 设置断点
- 点击行号左侧设置断点
- 按 F5 开始调试
- 使用调试工具栏控制执行
7.5 使用 Git 集成
7.5.1 查看更改
- 侧边栏 → 源代码管理
- 查看修改的文件
- 查看差异
7.5.2 提交更改
- 暂存文件(点击 + 号)
- 输入提交信息
- 点击 ✓ 提交
7.5.3 AI 辅助提交信息
- 在提交信息框中输入 /generate
- AI 会根据更改生成提交信息
7.6 并行 Agent(多智能体并行工作)
7.6.1 什么是并行 Agent?
并行 Agent 是 Cursor 2.0 的高级功能,允许同时运行多个 AI 代理(Agent)来处理同一个任务,每个代理提供不同的解决方案,让开发者可以比较和选择最佳方案。
7.6.2 核心概念
多智能体(Multi-Agents):
- 可以同时运行最多 8 个代理
- 每个代理使用相同或不同的 AI 模型
- 所有代理处理同一个任务,提供多种解决方案
- 适合复杂问题,需要多种实现方案
关键特点:
- 同一任务:所有代理处理相同的任务描述
- 多种方案:每个代理可能提供不同的实现方法
- 独立运行:每个代理在独立的工作空间中运行
- 结果比较:完成后可以比较各代理的输出,选择最佳方案
7.6.3 工作原理
- 任务发布:在 Composer 中发布一个任务
- 选择模型:选择要使用的 AI 模型(可以选多个)
- 并行执行:多个代理同时处理同一任务
- 结果展示:每个代理完成后显示其解决方案
- 方案比较:开发者比较各方案,选择最佳方案
- 应用方案:将选中的方案应用到主代码库
7.6.4 使用方法
步骤 1:初始化 Git 仓库
并行 Agent 需要 Git 仓库才能工作:
git init
git add .
git commit -m "Initial commit"
步骤 2:打开 Composer
- 按 Ctrl+I (Windows/Linux) 或 Cmd+I (macOS) 打开 Composer
步骤 3:启用并行 Agent
- 在 Composer 中输入任务描述
- 点击 “Use Multiple Models” 或选择并行模式
- 选择要使用的模型(最多 8 个)
- 可以选择相同的模型(如 3 个 Claude 3.5 Sonnet)
- 也可以选择不同的模型(如 Claude、GPT-4、GPT-3.5 各一个)
步骤 4:提交任务
输入任务描述,例如:
实现 PDF 压缩功能,要求:
- 支持多种压缩算法
- 保持文件质量
- 提供进度反馈
步骤 5:等待完成
- 每个代理会在独立的工作空间中运行
- 可以实时查看各代理的进度
- 等待所有代理完成
步骤 6:比较和选择
- 查看每个代理生成的代码
- 比较不同方案的优缺点
- 选择最佳方案应用到主代码库
7.6.5 使用场景
适合使用并行 Agent 的场景:
-
复杂后端逻辑
- 需要多种实现方案
- 例如:PDF 压缩、图像处理、数据加密
- 可以比较不同算法的效果
-
性能优化
- 需要尝试不同的优化策略
- 例如:数据库查询优化、缓存策略
- 比较不同方案的性能表现
-
架构设计
- 需要多种架构方案
- 例如:微服务设计、API 设计
- 比较不同架构的优缺点
-
算法实现
- 需要多种算法实现
- 例如:排序算法、搜索算法
- 比较不同算法的效率
-
问题调试
- 需要多种解决方案
- 例如:修复复杂 bug
- 比较不同修复方案的有效性
7.6.6 最佳实践
任务描述:
- 提供清晰、详细的任务描述
- 明确要求和约束条件
- 说明期望的输出格式
模型选择:
- 对于复杂任务,选择强大的模型
- 对于简单任务,可以使用快速模型
- 可以混合使用不同模型,比较效果
结果审查:
- 仔细审查每个代理的输出
- 运行测试验证功能
- 检查代码质量和性能
资源管理:
- 根据任务复杂度选择代理数量
- 建议使用 2-4 个代理(平衡效率和资源)
- 监控系统资源使用情况
7.6.7 注意事项
重要提示:
-
需要 Git 仓库
- 并行 Agent 功能需要 Git 仓库
- 确保项目已初始化 Git
-
资源消耗
- 多个代理会消耗更多 API 配额
- 根据账户配额合理选择代理数量
-
代码审查
- 每个代理生成的代码都需要审查
- 不要盲目选择第一个方案
- 运行测试确保功能正常
-
工作空间隔离
- 每个代理在独立的工作空间中运行
- 使用 Git Worktree 实现隔离(见下文)
7.6.8 实际示例
示例:实现 PDF 压缩功能
-
打开 Composer (Ctrl+I)
-
输入任务:
实现 PDF 压缩功能,要求: - 支持多种压缩算法(ZIP、LZW、Flate) - 保持文件质量,压缩率至少 30% - 提供压缩进度反馈 - 包含错误处理 -
选择并行模式:
- 点击 “Use Multiple Models”
- 选择 3 个代理:Claude 3.5 Sonnet × 2,GPT-4 × 1
-
提交任务:
- 点击提交,等待所有代理完成
-
比较方案:
- 代理 1:使用 Node.js + pdf-lib 库
- 代理 2:使用 Python + PyPDF2 库
- 代理 3:使用 Web API + 后端服务
- 根据项目需求选择最佳方案
-
应用方案:
- 选择代理 1 的方案(Node.js 方案)
- 点击 “Apply” 应用到主代码库
7.7 Worktree(Git 工作树)
7.7.1 什么是 Worktree?
Worktree 是 Git 的原生功能,允许在同一个 Git 仓库中创建多个工作目录,每个工作目录可以关联不同的分支,实现并行开发和代码隔离。
7.7.2 核心概念
工作树(Worktree):
- 一个 Git 仓库可以有多个工作目录
- 每个工作目录是独立的文件系统路径
- 可以同时在不同的工作目录中工作
- 避免频繁切换分支的麻烦
关键特点:
- 并行开发:可以同时在不同分支上工作
- 代码隔离:每个工作目录独立,互不干扰
- 共享仓库:所有工作目录共享同一个 Git 仓库
- 独立操作:可以在不同工作目录中独立提交、推送
7.7.3 工作原理
- 主工作目录:Git 仓库的原始工作目录
- 创建 Worktree:使用 git worktree add 创建新的工作目录
- 关联分支:每个工作目录关联一个分支
- 独立工作:在不同工作目录中独立开发
- 合并代码:完成后合并到主分支
7.7.4 基本命令
创建 Worktree:
# 创建新的工作目录并关联新分支
git worktree add ../project-feature feature-branch
# 创建新的工作目录并关联已存在的分支
git worktree add ../project-hotfix hotfix-branch
# 创建新的工作目录但不创建分支(detached HEAD)
git worktree add ../project-test HEAD~1
列出所有 Worktree:
git worktree list
删除 Worktree:
# 删除工作目录(需要先删除关联的分支或合并)
git worktree remove ../project-feature
# 强制删除(即使有未提交的更改)
git worktree remove --force ../project-feature
移动 Worktree:
git worktree move ../old-path ../new-path
7.7.5 在 Cursor 中使用 Worktree
方法 1:通过终端创建
- 打开 Cursor 的集成终端
- 创建新的 Worktree:
git worktree add ../my-project-feature feature-branch - 在新目录中打开 Cursor:
- File → Open Folder
- 选择新创建的 Worktree 目录
方法 2:通过 Cursor 界面
- 打开源代码管理面板
- 创建新分支
- 使用 Git 命令创建 Worktree(需要终端)
7.7.6 使用场景
适合使用 Worktree 的场景:
-
并行开发多个功能
- 同时开发多个不相关的功能
- 例如:功能 A 和功能 B 同时开发
- 避免频繁切换分支
-
代码审查
- 在独立工作目录中审查代码
- 不影响主开发环境
- 可以同时打开多个 PR 进行审查
-
实验性开发
- 尝试新的实现方案
- 不影响主代码库
- 可以随时丢弃实验性代码
-
Bug 修复
- 紧急修复生产环境 bug
- 同时继续开发新功能
- 互不干扰
-
版本维护
- 同时维护多个版本
- 例如:v1.x 和 v2.x 同时维护
- 独立的工作目录便于管理
7.7.7 最佳实践
命名规范:
- 使用描述性的目录名
- 例如:…/project-auth-feature、…/project-bugfix-123
分支管理:
- 每个 Worktree 关联一个独立分支
- 使用清晰的分支命名
- 定期清理不需要的 Worktree
资源管理:
- 不要创建过多的 Worktree
- 定期清理不需要的工作目录
- 注意磁盘空间使用
代码同步:
- 定期从主分支拉取更新
- 及时合并到主分支
- 避免长时间分离开发
7.7.8 注意事项
重要提示:
-
分支限制
- 不能在不同 Worktree 中检出同一个分支
- 每个分支只能在一个 Worktree 中使用
-
删除顺序
- 删除 Worktree 前需要先删除或合并关联的分支
- 或者使用 --force 强制删除
-
磁盘空间
- 每个 Worktree 都会占用磁盘空间
- 注意管理磁盘使用
-
文件冲突
- 虽然工作目录独立,但共享同一个 Git 仓库
- 注意避免文件冲突
7.7.9 实际示例
示例:并行开发两个功能
# 1. 创建功能 A 的 Worktree
git worktree add ../project-feature-a feature-a
cd ../project-feature-a
# 开发功能 A...
# 2. 创建功能 B 的 Worktree(在另一个终端)
git worktree add ../project-feature-b feature-b
cd ../project-feature-b
# 开发功能 B...
# 3. 查看所有 Worktree
git worktree list
# 输出:
# /path/to/main abc123 [main]
# /path/to/feature-a def456 [feature-a]
# /path/to/feature-b ghi789 [feature-b]
# 4. 完成后删除 Worktree
git worktree remove ../project-feature-a
git worktree remove ../project-feature-b
7.8 并行 Agent 与 Worktree 的关联
7.8.1 关联关系
并行 Agent 功能利用 Git Worktree 实现代码隔离:
当使用并行 Agent 功能时,Cursor 会自动为每个 Agent 创建独立的 Git Worktree,确保:
- 每个 Agent 在独立的工作空间中运行
- Agent 之间的代码修改互不干扰
- 可以安全地并行处理同一任务
- 完成后可以比较和选择最佳方案
7.8.2 工作流程
- 任务发布:在 Composer 中发布任务并选择并行模式
- 创建 Worktree:Cursor 自动为每个 Agent 创建独立的 Worktree
- 并行执行:每个 Agent 在自己的 Worktree 中处理任务
- 结果收集:所有 Agent 完成后,收集各 Worktree 的结果
- 方案比较:开发者比较各 Worktree 中的代码
- 应用方案:选择最佳方案,合并到主代码库
- 清理 Worktree:删除不需要的 Worktree
7.8.3 技术实现
自动创建 Worktree:
主代码库 (main)
├── worktree-agent-1/ (Agent 1 的工作空间)
├── worktree-agent-2/ (Agent 2 的工作空间)
└── worktree-agent-3/ (Agent 3 的工作空间)
工作流程:
- Cursor 检测到并行 Agent 模式
- 自动执行 git worktree add 为每个 Agent 创建 Worktree
- 每个 Agent 在独立的 Worktree 中运行
- 完成后,Cursor 展示各 Worktree 的结果
- 用户选择方案后,Cursor 合并到主代码库
- 自动清理临时 Worktree
7.8.4 优势
代码隔离:
- 每个 Agent 的修改完全独立
- 不会相互覆盖或冲突
- 可以安全地并行运行
方案比较:
- 可以同时查看所有方案
- 方便比较不同实现
- 选择最佳方案
安全性:
- 主代码库不受影响
- 可以随时丢弃不需要的方案
- 使用 Git 管理,可追溯
7.8.5 注意事项
使用并行 Agent 时的注意事项:
-
需要 Git 仓库
- 并行 Agent 依赖 Git Worktree
- 确保项目已初始化 Git 仓库
-
磁盘空间
- 每个 Agent 会创建独立的 Worktree
- 注意磁盘空间使用(特别是使用多个 Agent 时)
-
清理工作
- Cursor 通常会自动清理临时 Worktree
- 如果异常退出,可能需要手动清理
- 使用 git worktree list 查看所有 Worktree
-
分支管理
- Cursor 会自动管理 Worktree 关联的分支
- 通常使用临时分支,完成后自动删除
- 不需要手动管理分支
7.8.6 实际应用
场景:使用并行 Agent 实现 PDF 压缩
-
初始化 Git(如果还没有):
git init git add . git commit -m "Initial commit" -
打开 Composer (Ctrl+I)
-
启用并行 Agent:
- 输入任务描述
- 选择 “Use Multiple Models”
- 选择 3 个 Agent
-
Cursor 自动创建 Worktree:
project/ ├── .git/ ├── worktree-agent-1/ (自动创建) ├── worktree-agent-2/ (自动创建) └── worktree-agent-3/ (自动创建) -
Agent 并行工作:
- Agent 1 在 worktree-agent-1 中实现方案 A
- Agent 2 在 worktree-agent-2 中实现方案 B
- Agent 3 在 worktree-agent-3 中实现方案 C
-
比较和选择:
- 查看三个 Worktree 中的代码
- 比较实现方案
- 选择最佳方案
-
应用和清理:
- 将选中的方案合并到主代码库
- Cursor 自动删除临时 Worktree
7.9 VS Code 扩展兼容性
7.9.1 扩展兼容性概述
Cursor 基于 VS Code 构建,因此完全兼容 VS Code 的扩展生态系统。你可以安装和使用几乎所有 VS Code 扩展,扩展 Cursor 的功能。
7.9.2 安装扩展
方法 1:通过扩展市场安装
- 点击侧边栏的扩展图标(或按 Ctrl+Shift+X)
- 在搜索框中输入扩展名称
- 点击 “Install” 安装扩展
- 安装完成后可能需要重启 Cursor
方法 2:从 VSIX 文件安装
- 下载扩展的 .vsix 文件
- 在扩展面板中点击 “…” 菜单
- 选择 “Install from VSIX…”
- 选择下载的 .vsix 文件
方法 3:通过命令行安装
cursor --install-extension publisher.extension-name
7.9.3 推荐扩展
代码质量:
- ESLint:JavaScript/TypeScript 代码检查
- Prettier:代码格式化
- SonarLint:代码质量分析
Git 增强:
- GitLens:Git 功能增强,查看代码历史、作者信息等
- Git Graph:可视化 Git 提交历史
开发效率:
- Auto Rename Tag:自动重命名配对的 HTML/XML 标签
- Bracket Pair Colorizer:括号配对着色
- Path Intellisense:路径自动补全
- Import Cost:显示导入包的大小
主题和美化:
- One Dark Pro:流行的暗色主题
- Material Icon Theme:文件图标主题
- Dracula Official:Dracula 主题
语言支持:
- Python:Python 语言支持
- Rust:Rust 语言支持
- Go:Go 语言支持
- Java Extension Pack:Java 开发扩展包
7.9.4 扩展与 AI 功能的配合
代码格式化扩展:
- Prettier、ESLint 等扩展可以与 Cursor 的 AI 功能配合
- AI 生成的代码会自动应用格式化规则
- 在 .cursorrules 中可以指定使用的格式化工具
Git 扩展:
- GitLens 等扩展可以增强 Git 功能
- 与 Cursor 的 Git 集成功能互补
- 可以查看更详细的代码历史信息
语言支持扩展:
- 语言扩展提供语法高亮、代码补全等功能
- 与 Cursor 的 AI 补全功能配合,提供更准确的建议
7.9.5 扩展配置
扩展设置:
- 打开设置:Ctrl+,
- 搜索扩展名称
- 配置扩展选项
工作区扩展:
- 可以为特定项目推荐扩展
- 在 .vscode/extensions.json 中配置推荐扩展
- 团队成员打开项目时会看到扩展推荐
示例 .vscode/extensions.json:
{
"recommendations": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"eamodio.gitlens"
]
}
7.9.6 扩展冲突处理
性能问题:
- 某些扩展可能影响 Cursor 的性能
- 如果遇到性能问题,尝试禁用不必要的扩展
- 使用扩展的禁用功能临时关闭扩展
功能冲突:
- 某些扩展可能与 Cursor 的 AI 功能冲突
- 如果遇到问题,检查扩展设置
- 考虑使用替代扩展
扩展更新:
- 定期更新扩展以获得最新功能
- 注意扩展的兼容性说明
- 更新前备份重要配置
7.9.7 扩展开发
创建自定义扩展:
- Cursor 支持 VS Code 扩展 API
- 可以使用 VS Code 扩展开发工具包
- 参考 VS Code 扩展开发文档
扩展调试:
- 使用扩展开发主机调试扩展
- 查看扩展输出日志
- 测试扩展功能
7.10 代码历史记录和版本对比
7.10.1 AI 修改历史
查看修改历史:
Cursor 会记录 AI 对代码的所有修改,你可以查看和恢复之前的版本。
访问修改历史:
-
通过源代码管理面板:
- 打开源代码管理面板(Ctrl+Shift+G)
- 查看文件修改历史
- 可以看到 AI 的每次修改
-
通过文件历史:
- 右键点击文件
- 选择 “Timeline” 或"时间线"
- 查看文件的所有修改记录
-
通过 Git 历史:
- 如果使用 Git,可以通过 Git 历史查看
- 使用 GitLens 扩展查看更详细的历史
7.10.2 版本对比功能
对比文件版本:
-
对比当前版本和之前版本:
- 在源代码管理面板中选择文件
- 点击 “Compare with Previous Version”
- 查看两个版本的差异
-
对比任意两个版本:
- 在时间线中选择两个版本
- 右键选择 “Compare”
- 查看版本间的差异
-
对比 Git 提交:
- 使用 Git 对比功能
- 对比不同提交之间的差异
- 查看详细的代码变更
7.10.3 恢复之前的版本
撤销 AI 修改:
-
使用撤销功能:
- Ctrl+Z 撤销最近的修改
- 可以多次撤销,回到之前的版本
-
恢复文件版本:
- 在时间线中选择要恢复的版本
- 右键选择 “Restore” 或"恢复"
- 文件会恢复到选中的版本
-
使用 Git 恢复:
- 如果使用 Git,可以使用 Git 恢复功能
git checkout -- 文件名恢复文件git reset HEAD~1撤销最后一次提交
7.10.4 代码变更追踪
查看变更统计:
- Cursor 会显示文件的变更统计
- 可以看到添加、删除、修改的行数
- 在源代码管理面板中查看
变更高亮:
- 修改的行会高亮显示
- 绿色表示添加的行
- 红色表示删除的行
- 蓝色表示修改的行
变更导航:
- 使用快捷键快速跳转到下一个/上一个变更
- Ctrl+Shift+P → “Go to Next Change”
- Ctrl+Shift+P → “Go to Previous Change”
7.10.5 最佳实践
频繁提交:
- 每完成一个功能就提交代码
- 使用清晰的提交信息
- 利用 AI 生成提交信息功能
使用分支:
- 为不同功能创建分支
- 使用 Git Worktree 并行开发
- 完成后合并到主分支
代码审查:
- 提交前审查 AI 生成的代码
- 使用代码对比功能检查变更
- 确保代码质量和功能正确性
备份重要版本:
- 定期创建代码快照
- 使用 Git 标签标记重要版本
- 保留关键版本的备份
7.10.6 实际应用示例
示例:恢复 AI 修改
-
AI 修改了代码:
- 使用 Composer 修改了多个文件
- 发现修改不符合预期
-
查看修改历史:
- 打开源代码管理面板
- 查看所有修改的文件
- 检查每个文件的变更
-
对比版本:
- 对比当前版本和修改前的版本
- 查看具体的变更内容
- 确认需要恢复的部分
-
恢复代码:
- 选择要恢复的文件
- 点击 “Discard Changes” 或使用 Git 恢复
- 代码恢复到修改前的状态
示例:审查 AI 修改
-
AI 完成修改:
- Composer 完成了多文件重构
- 需要审查所有变更
-
查看变更列表:
- 在源代码管理面板查看所有变更
- 逐个文件检查修改
-
对比关键文件:
- 对比重要文件的变更
- 确保逻辑正确
- 检查是否有遗漏
-
测试和提交:
- 运行测试确保功能正常
- 确认无误后提交代码
- 使用 AI 生成提交信息
8. 最佳实践
8.1 编写清晰的提示
8.1.1 好的提示示例
清晰明确:
创建一个用户登录组件,包含用户名和密码输入框,
使用 React Hooks,添加表单验证,样式使用 Tailwind CSS
模糊不清:
做个登录页面
8.1.2 提示技巧
- 具体描述:说明要做什么,怎么做
- 提供上下文:提及相关文件或功能
- 指定技术栈:说明使用的框架、库
- 说明要求:性能、可访问性等要求
8.2 代码审查流程
- 让 AI 生成代码
- 仔细审查代码
- 测试功能
- 检查性能
- 确认安全性
- 提交代码
8.3 使用版本控制
- 频繁提交:每完成一个功能就提交
- 清晰的提交信息:使用 AI 生成或自己写
- 分支管理:使用分支开发新功能
- 代码审查:提交前审查代码
8.4 性能优化
8.4.1 减少 AI 请求
- 一次性描述完整需求
- 避免频繁的小修改
- 使用 Composer 进行大规模重构
8.4.2 提高响应速度
- 关闭不必要的扩展
- 使用本地模型(如果支持)
- 优化项目文件数量
8.5 安全注意事项
8.5.1 不要提交敏感信息
- API Keys
- 密码
- 个人信息
- 私钥
8.5.2 使用环境变量
// 错误
const apiKey = "sk-1234567890";
// 正确
const apiKey = process.env.API_KEY;
8.5.3 代码审查
- 审查 AI 生成的代码
- 检查安全漏洞
- 验证输入验证
9. 常见问题解答
9.1 基础问题
Q: Cursor 是免费的吗?
A: Cursor 有免费版本,但功能有限。付费版本提供更多 AI 请求次数和高级功能。
Q: Cursor 支持哪些编程语言?
A: Cursor 支持几乎所有主流编程语言,包括 JavaScript、Python、Java、C++、Go、Rust 等。
Q: 需要网络连接吗?
A: 是的,AI 功能需要网络连接。代码编辑功能可以离线使用。
Q: 如何更新 Cursor?
A: 打开设置 → 关于 → 检查更新,或访问官网下载最新版本。
9.2 AI 功能问题
Q: AI 补全不准确怎么办?
A:
- 检查代码上下文是否清晰
- 尝试添加注释说明意图
- 使用 Chat 明确描述需求
- 检查 .cursorrules 配置
Q: Chat 响应慢怎么办?
A:
- 检查网络连接
- 尝试切换到更快的模型
- 减少上下文大小
- 关闭其他占用资源的程序
Q: Composer 修改了错误的文件怎么办?
A:
- 使用 Git 撤销更改:git checkout – 文件名
- 或使用 Cursor 的撤销功能:Ctrl+Z
- 提交前仔细审查更改
Q: 如何提高 AI 代码质量?
A:
- 编写清晰的提示
- 提供足够的上下文
- 使用 .cursorrules 配置规则
- 分步骤完成复杂任务
9.3 配置问题
Q: 如何切换 AI 模型?
A: 设置 → 搜索 “Model” → 选择模型
Q: 如何配置代码风格?
A: 创建 .cursorrules 文件或使用项目配置文件
Q: 如何导入 VS Code 设置?
A: 设置 → 搜索 “Import Settings” → 选择 VS Code 配置文件
Q: 快捷键冲突怎么办?
A: 设置 → 键盘快捷键 → 搜索冲突的快捷键 → 修改
9.4 性能问题
Q: Cursor 占用内存太多?
A:
- 关闭不必要的扩展
- 减少打开的文件数量
- 禁用不需要的 AI 功能
- 增加系统内存
Q: 代码补全延迟?
A:
- 检查网络连接
- 减少项目文件数量
- 调整补全延迟设置
- 使用本地模型(如果支持)
9.5 故障排除
Q: Cursor 无法启动?
A:
- 检查系统要求
- 重新安装 Cursor
- 查看错误日志
- 联系技术支持
Q: AI 功能不工作?
A:
- 检查网络连接
- 验证账户状态
- 检查 API Key(如果使用)
- 重启 Cursor
Q: 扩展无法安装?
A:
- 检查网络连接
- 清除扩展缓存
- 手动下载安装
- 检查扩展兼容性
10. 实战案例
10.1 案例 1:创建 React 组件
任务描述
创建一个用户卡片组件,显示用户头像、姓名和邮箱。
步骤
-
打开 Composer (Ctrl+I)
-
输入需求
创建一个 React 用户卡片组件 UserCard.jsx,
包含:
- 用户头像(圆形)
- 用户姓名(粗体)
- 用户邮箱(灰色)
使用 Tailwind CSS 样式,组件接收 user 对象作为 props
- AI 生成代码
import React from 'react';
const UserCard = ({ user }) => {
return (
<div className="bg-white rounded-lg shadow-md p-6 max-w-sm">
<div className="flex items-center space-x-4">
<img
src={user.avatar || '/default-avatar.png'}
alt={user.name}
className="w-16 h-16 rounded-full object-cover"
/>
<div>
<h3 className="text-xl font-bold text-gray-800">{user.name}</h3>
<p className="text-gray-500">{user.email}</p>
</div>
</div>
</div>
);
};
export default UserCard;
- 审查和测试
- 检查代码逻辑
- 测试组件功能
- 调整样式
10.2 案例 2:重构代码
任务描述
将类组件重构为函数组件。
步骤
-
选中要重构的代码
-
打开 Chat (Ctrl+L)
-
输入需求
将这段类组件重构为使用 React Hooks 的函数组件
-
AI 提供重构方案
-
应用更改
10.3 案例 3:添加新功能
任务描述
在现有项目中添加用户搜索功能。
步骤
-
打开 Composer (Ctrl+I)
-
输入需求
添加用户搜索功能:
1. 创建 SearchBar.jsx 组件(搜索输入框)
2. 创建 UserList.jsx 组件(显示搜索结果)
3. 在 App.jsx 中集成搜索功能
4. 添加搜索逻辑(过滤用户列表)
使用 React Hooks 和 Tailwind CSS
-
AI 创建多个文件
-
审查和测试
10.4 案例 4:调试代码
任务描述
修复一个 JavaScript 错误。
步骤
-
选中错误代码
-
打开 Chat (Ctrl+L)
-
输入
这段代码报错:TypeError: Cannot read property 'name' of undefined
请帮我修复
-
AI 分析并提供修复方案
-
应用修复
10.5 案例 5:代码优化
任务描述
优化一个性能较差的函数。
步骤
-
选中函数代码
-
Chat 中输入
优化这个函数的性能,当前执行时间较长
-
AI 提供优化建议
-
应用优化
11. 进阶学习资源
11.1 官方资源
- 官网:https://cursor.sh
- 文档:https://docs.cursor.sh
- 博客:https://cursor.sh/blog
- 社区:https://cursor.sh/community
11.2 视频教程
- YouTube 搜索 “Cursor 2.0 tutorial”
- B站搜索 “Cursor 教程”
- 官方 YouTube 频道
11.3 社区资源
- GitHub Discussions:讨论和提问
- Discord:实时交流
- Reddit:r/cursor
- Twitter:@cursor_ai
11.4 实践项目
- 待办事项应用:练习基础功能
- 博客系统:练习多文件编辑
- API 客户端:练习代码生成
- 全栈应用:综合练习
12. 学习路径建议
12.1 第 1 周:基础入门
- 安装和配置 Cursor
- 熟悉界面和基本操作
- 学习使用 AI 代码补全
- 练习基本快捷键
12.2 第 2 周:AI 功能
- 掌握 Chat 功能
- 学习使用 Composer
- 练习代码解释和生成
- 完成 2-3 个小项目
12.3 第 3 周:高级功能
- 学习使用 .cursorrules
- 创建和管理知识库
- 掌握代码重构技巧
- 学习上下文窗口管理
- 安装和配置 VS Code 扩展
- 学习调试和测试
- 完成一个中型项目
12.4 第 4 周:精通应用
- 使用并行 Agent 处理复杂任务
- 掌握代码历史记录和版本对比
- 优化工作流程
- 学习最佳实践
- 解决复杂问题
- 分享经验和技巧
13. 总结
13.1 核心要点
- Cursor 2.0 是强大的 AI 代码编辑器
- 掌握 Chat 和 Composer 是核心
- 清晰的提示能提高 AI 输出质量
- 始终审查 AI 生成的代码
- 使用版本控制管理更改
13.2 持续学习
- 关注 Cursor 更新
- 参与社区讨论
- 实践新功能
- 分享学习经验
13.3 下一步
- 开始使用 Cursor 2.0
- 完成学习路径中的任务
- 在实际项目中应用
- 不断优化工作流程
附录 A:快速参考卡片
A.1 常用命令
| 命令 | 快捷键 | 说明 |
|---|---|---|
| Chat | Ctrl+L | 打开 AI 对话 |
| Composer | Ctrl+I | 多文件编辑 |
| 命令面板 | Ctrl+Shift+P | 所有命令 |
| 接受建议 | Tab | 接受 AI 补全 |
A.2 Chat 命令
- /fix - 修复错误
- /explain - 解释代码
- /refactor - 重构代码
- /test - 生成测试
- /doc - 生成文档
A.3 @ 符号引用功能
文件引用:
- @文件名 - 引用特定文件(如 @App.js)
- @文件路径 - 引用完整路径(如 @src/components/Button.jsx)
文件夹引用:
- @文件夹名 - 引用整个文件夹(如 @src/components)
代码引用:
- 选中代码后自动引用 - 在 Chat 中输入问题会自动引用
- @Code - 显式引用代码片段
文档引用:
- @README.md - 引用文档文件
- @docs/guide.md - 引用文档路径
Git 引用:
- @Git - 引用 Git 信息
- @Git:commit_hash - 引用特定提交
网络搜索:
- @Web - 从互联网获取最新信息
知识库引用:
- @Knowledge Base - 引用知识库
- @知识库名称 - 引用特定知识库(如 @API文档)
组合使用:
- @文件1 @文件2 - 同时引用多个文件
- @文件夹 @文档 - 组合不同类型的引用
- @Knowledge Base @文件 - 组合知识库和文件引用
A.4 并行 Agent 快速参考
基本使用:
- 打开 Composer (Ctrl+I)
- 输入任务描述
- 选择 “Use Multiple Models”
- 选择要使用的模型(最多 8 个)
关键特点:
- 所有代理处理同一个任务
- 每个代理提供不同的解决方案
- 可以比较和选择最佳方案
最佳实践:
- 需要 Git 仓库
- 建议使用 2-4 个代理
- 仔细审查每个代理的输出
- 运行测试验证功能
A.5 Worktree 快速参考
基本命令:
# 创建 Worktree
git worktree add ../project-feature feature-branch
# 列出所有 Worktree
git worktree list
# 删除 Worktree
git worktree remove ../project-feature
使用场景:
- 并行开发多个功能
- 代码审查
- 实验性开发
- Bug 修复
注意事项:
- 每个分支只能在一个 Worktree 中使用
- 注意磁盘空间使用
- 定期清理不需要的 Worktree
A.6 并行 Agent 与 Worktree 的关联
关联关系:
- 并行 Agent 使用 Git Worktree 实现代码隔离
- Cursor 自动为每个 Agent 创建独立的 Worktree
- 每个 Agent 在独立的 Worktree 中运行
- 完成后可以比较各 Worktree 的结果
工作流程:
- 启用并行 Agent → Cursor 自动创建 Worktree
- Agent 在各自 Worktree 中工作
- 比较各 Worktree 的结果
- 选择最佳方案合并到主代码库
- 自动清理临时 Worktree
A.7 知识库功能快速参考
创建知识库:
- 设置 → 搜索 “Knowledge Base” → 创建知识库
- 添加文件、URL、文件夹或手动输入内容
使用知识库:
- @Knowledge Base - 在 Chat 或 Composer 中引用知识库
- @知识库名称 - 引用特定知识库
最佳实践:
- 分类管理不同类型的文档
- 定期更新知识库内容
- 精简内容,只添加必要文档
- 团队共享知识库
A.8 上下文窗口管理快速参考
查看上下文:
- Chat/Composer 中显示上下文使用情况
- 状态栏显示上下文状态
优化上下文:
- 使用 @文件名 精确指定文件
- 排除不必要文件(.cursorignore)
- 分步骤处理大任务
配置选项:
- 设置 → 搜索 “Context” → 配置上下文选项
- 设置最大上下文大小
- 配置自动包含/排除模式
A.9 VS Code 扩展快速参考
安装扩展:
- Ctrl+Shift+X 打开扩展市场
- 搜索并安装扩展
- 或从 VSIX 文件安装
推荐扩展:
- ESLint、Prettier(代码质量)
- GitLens(Git 增强)
- 语言支持扩展(Python、Rust、Go 等)
扩展配置:
- .vscode/extensions.json - 项目推荐扩展
- 设置 → 搜索扩展名称 → 配置选项
A.10 代码历史记录快速参考
查看历史:
- 源代码管理面板(Ctrl+Shift+G)
- 文件时间线(右键 → Timeline)
- Git 历史(使用 GitLens)
版本对比:
- 对比当前版本和之前版本
- 对比任意两个版本
- 对比 Git 提交
恢复版本:
- Ctrl+Z 撤销修改
- 时间线中选择版本 → Restore
- Git 恢复命令
附录 B:配置文件示例
B.1 .cursorrules 示例
# 项目代码规范
## 代码风格
- 使用 2 个空格缩进
- 使用单引号
- 行尾不加分号
- 使用 const/let,不使用 var
## React 规范
- 使用函数组件和 Hooks
- 组件使用 PascalCase
- Props 使用 TypeScript 类型
- 使用 React.memo 优化
## 代码质量
- 所有函数必须有注释
- 错误处理必须完善
- 避免魔法数字和字符串
- 使用有意义的变量名
B.2 settings.json 示例
{
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"cursor.aiModel": "claude-3.5-sonnet",
"cursor.enableTabCompletion": true,
"cursor.chat.enabled": true,
"cursor.composer.enabled": true
}
祝你在 Cursor 2.0 的学习之旅中取得成功!
如有问题,欢迎查阅官方文档或社区资源。
版本:Cursor 2.0
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)