AI Chat 对话
Chat 是 Cursor 最常用的功能,让你可以用自然语言与 AI 对话,获取代码解释、生成代码片段、解决问题。
#打开 Chat
使用快捷键打开 Chat 面板:
| 操作 | macOS | Windows/Linux |
|---|---|---|
| 打开 Chat | Cmd + L | Ctrl + L |
| 新对话 | Cmd + Shift + L | Ctrl + Shift + L |
#基础用法
#提问问题
直接输入问题,AI 会根据当前上下文回答:
> 这个函数是做什么的?
> 如何在 React 中实现无限滚动?
> 帮我解释一下这个错误信息
#引用代码
在 Chat 中引用代码有多种方式:
1. 选中代码后提问
- 在编辑器中选中代码
- 按
Cmd+L打开 Chat - 选中的代码会自动作为上下文
2. 使用 @ 符号引用
@filename.ts 这个文件中的 API 调用逻辑是什么?
@function:handleSubmit 这个函数的参数类型是什么?
@folder:src/components 这个文件夹的组件结构是怎样的?
3. 添加文件到上下文
点击输入框旁边的 + 按钮,选择要添加的文件。
#高级技巧
#Prompt 模板
常用的 Prompt 格式:
markdown# 解释代码 解释下面这段代码的作用和实现逻辑: [粘贴代码] # 代码审查 审查以下代码,指出潜在问题和改进建议: [粘贴代码] # 生成测试 为以下函数生成单元测试: [粘贴代码] # 优化代码 优化以下代码的性能/可读性: [粘贴代码]
#多轮对话
Chat 支持多轮对话,可以持续深入讨论:
> 帮我写一个 React Hook 来管理表单状态
AI: [生成代码]
> 能添加表单验证功能吗?
AI: [更新代码]
> 再加上提交状态的处理
AI: [继续完善]
#上下文管理
Cursor 会自动管理上下文,但你也可以手动控制:
- 清除上下文: 点击 "Clear" 或开始新对话
- 固定文件: 使用
@引用的文件会保持在上下文中 - 查看上下文: 点击输入框上方的文件标签
#最佳实践
#1. 提供足够上下文
markdown❌ 不好的问法 > 这里报错了怎么办? ✅ 好的问法 > 在使用 React Query 时,调用 useMutation 后出现类型错误: > "Type 'undefined' is not assignable to type 'string'" > 相关代码在 @src/hooks/useCreateUser.ts
#2. 明确你的需求
markdown❌ 模糊的需求 > 帮我优化这个组件 ✅ 具体的需求 > 优化这个组件的渲染性能,主要考虑: > 1. 减少不必要的重渲染 > 2. 使用 useMemo 缓存计算结果 > 3. 拆分大组件
#3. 分步骤请求
对于复杂任务,分步骤进行:
markdown第一步:> 帮我设计一个用户认证系统的数据结构 第二步:> 基于这个结构,实现登录 API 第三步:> 添加 JWT token 验证 第四步:> 编写相关的单元测试
#Chat vs Composer
什么时候用 Chat,什么时候用 Composer?
| 场景 | 推荐工具 |
|---|---|
| 问答、解释代码 | Chat |
| 修改单个文件 | Chat |
| 生成代码片段 | Chat |
| 修改多个文件 | Composer |
| 实现新功能 | Composer |
| 重构项目 | Composer |
#快捷操作
在 Chat 回复中:
| 操作 | 说明 |
|---|---|
| Apply | 将代码应用到编辑器 |
| Copy | 复制代码到剪贴板 |
| Insert | 在光标位置插入代码 |
| Diff | 查看代码差异 |
#常见问题
#Chat 响应很慢?
- 检查网络连接
- 尝试切换到 GPT-3.5 模型
- 减少上下文中的文件数量
#代码没有正确应用?
- 确保文件已保存
- 检查目标位置是否正确
- 手动调整后再应用
#下一步
- Composer 多文件编辑 - 学习更强大的多文件编辑功能
- 快捷键速查 - 掌握所有快捷键