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