logo

AI Chat 对话

Chat 是 Cursor 最常用的功能,让你可以用自然语言与 AI 对话,获取代码解释、生成代码片段、解决问题。

打开 Chat

使用快捷键打开 Chat 面板:

操作macOSWindows/Linux
打开 ChatCmd + LCtrl + L
新对话Cmd + Shift + LCtrl + Shift + L

基础用法

提问问题

直接输入问题,AI 会根据当前上下文回答:

> 这个函数是做什么的?
> 如何在 React 中实现无限滚动?
> 帮我解释一下这个错误信息

引用代码

在 Chat 中引用代码有多种方式:

1. 选中代码后提问

  1. 在编辑器中选中代码
  2. Cmd+L 打开 Chat
  3. 选中的代码会自动作为上下文

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 响应很慢?

  1. 检查网络连接
  2. 尝试切换到 GPT-3.5 模型
  3. 减少上下文中的文件数量

代码没有正确应用?

  1. 确保文件已保存
  2. 检查目标位置是否正确
  3. 手动调整后再应用

下一步

Cursor 完整指南
Vibe Coding

Cursor 完整指南

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

Cursor 完整指南AI Chat 对话

AI Chat 对话

Chat 是 Cursor 最常用的功能,让你可以用自然语言与 AI 对话,获取代码解释、生成代码片段、解决问题。

#打开 Chat

使用快捷键打开 Chat 面板:

操作macOSWindows/Linux
打开 ChatCmd + LCtrl + L
新对话Cmd + Shift + LCtrl + Shift + L

#基础用法

#提问问题

直接输入问题,AI 会根据当前上下文回答:

> 这个函数是做什么的?
> 如何在 React 中实现无限滚动?
> 帮我解释一下这个错误信息

#引用代码

在 Chat 中引用代码有多种方式:

1. 选中代码后提问

  1. 在编辑器中选中代码
  2. Cmd+L 打开 Chat
  3. 选中的代码会自动作为上下文

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 响应很慢?

  1. 检查网络连接
  2. 尝试切换到 GPT-3.5 模型
  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",开启后你的代码不会被存储在服务器上,也不会用于训练模型,适合企业级开发。