Cursor Ask 智能问答
免责声明:本文档是 Cursor 官方文档中的 Ask 智能问答页面的第三方非官方中文翻译,仅供学习参考。内容可能不完全反映最新的官方信息,请以 Cursor 官方文档 为准。所有商标和版权归 Cursor/Anysphere 公司所有。
本文档介绍 Cursor 的 Ask 功能,这是一个智能聊天功能,使用 AI 在您的编辑器中回答代码问题,具备智能上下文理解和文件引用能力。
概述
Ask 是 Cursor 中的智能聊天功能,它使用 AI 来回答代码问题,具备智能上下文理解和文件引用能力,全部集成在您的编辑器中。
Ask 让您可以在代码库中提问或解决问题,使用最强大的语言模型,而无需离开编辑器环境。
对于语言模型来说,要给出好的回答,它们需要了解与您代码库相关的特定信息——即上下文。
Cursor 内置了多种特性来在聊天中提供上下文,例如自动包含整个代码库的上下文、搜索网络、索引文档以及用户指定的代码块引用。这些功能的设计目的是消除使用语言模型处理代码时通常需要的繁琐复制粘贴操作。
默认情况下,Ask 位于 AI 面板中,该面板在您主侧边栏的另一侧。您可以通过按下 Ctrl/⌘ + L
来切换 AI 面板,打开时焦点会自动聚焦到聊天输入框。要提交您的查询,按下 Enter
键即可。
用户和 AI 消息
用户消息包含您输入的文本,以及您引用的上下文。您可以返回到任何先前的用户消息进行编辑并重新运行查询。这将覆盖之后的所有消息并生成新的回应。
AI 消息是从您选择的 AI 模型生成的回应。它们与之前的用户消息配对。AI 消息可能包含解析过的代码块,您可以通过即时应用功能将它们添加到您的代码库中。
同一线程中的所有用户/AI 消息统称为聊天线程,每个聊天线程都会保存在您的聊天历史中。
聊天历史
通过点击 AI 面板右上角的"历史聊天"按钮,或按下 Ctrl/⌘ + Alt/Option + L
,您可以查看聊天历史。您可以点击任何聊天线程返回查看组成该线程的消息,也可以通过点击钢笔图标修改线程标题,或通过在历史记录中悬停在线程上并点击垃圾桶图标删除线程。
Cursor 线程的标题就是第一条用户消息的前几个词。
默认上下文
默认情况下,Ask 会将当前文件作为上下文包含进来。您可以通过从消息中移除当前文件指示器来提交不包含任何上下文的查询。在您输入时,可以在输入框上方的指示器中看到将包含在上下文中的内容。
添加上下文
默认情况下,用户消息将包含您输入的文本以及您引用的上下文。您可以使用 @ 符号为每个消息气泡添加更多自定义上下文,并且默认情况下,当前查看的文件也会作为上下文包含在用户消息中。
更多信息请参阅 @ 符号引用页面。
AI 修复聊天
在代码库中修复代码检查器错误的一个便捷功能是使用聊天中的 AI 修复。要使用此功能,将鼠标悬停在编辑器中的错误上,然后点击出现的蓝色 AI 修复按钮。
此功能的键盘快捷键是 Ctrl/⌘ + Shift + E
。
核心特性
智能上下文理解
Ask 能够理解您的代码库结构和上下文:
- 默认包含当前文件作为上下文
- 可以引用特定文件、文件夹或整个代码库
- 理解代码之间的关系和依赖
- 根据上下文提供更相关的回答
@ 符号引用系统
Ask 支持强大的引用系统来精确指定上下文:
引用 | 描述 | 示例 |
---|---|---|
@codebase | 搜索整个代码库 | "使用 @codebase 查找所有用户认证的地方" |
@filename | 引用特定文件 | "@src/utils/auth.js 这个文件的作用是什么?" |
@symbol | 引用函数或类 | "@AuthService 这个类如何验证用户?" |
@folder | 引用文件夹 | "@components 哪些组件使用了 Redux?" |
@web | 搜索互联网信息 | "@web 如何正确使用 React useEffect?" |
聊天历史管理
聊天历史功能使您能够:
- 查看之前的所有对话
- 返回到之前的对话继续讨论
- 编辑或删除现有的对话线程
- 为重要对话提供描述性标题
代码建议和应用
Ask 不仅可以回答问题,还可以提供可直接应用的代码建议:
- AI 回复中的代码块可直接应用到您的文件中
- 修复代码检查器错误的专用功能
- 提供可执行的改进和优化建议
- 直接在对话中生成和修改代码
使用技巧
提高问题质量
为了获得最有用的回答:
- 具体明确:提出具体的问题,而不是模糊的请求
- 提供上下文:利用默认上下文或添加额外相关文件
- 一次一个问题:避免在一个消息中包含多个不相关的询问
- 利用聊天历史:通过已有对话建立连续的上下文
常见查询示例
Ask 特别适合回答这些类型的问题:
- "这个代码库的架构是什么?"(使用 @codebase)
- "这个函数的作用是什么?"(当前文件或特定引用)
- "如何修复这个错误?"(使用 AI 修复功能)
- "这个模块与其他部分如何交互?"(使用文件引用)
键盘快捷键
操作 | Windows/Linux | macOS |
---|---|---|
打开/关注 Ask 面板 | Ctrl+L | ⌘+L |
查看聊天历史 | Ctrl+Alt+L | ⌘+Option+L |
AI 错误修复 | Ctrl+Shift+E | ⌘+Shift+E |
发送消息 | Enter | Enter |
开始新行 | Shift+Enter | Shift+Enter |
关闭 Ask 面板 | Esc | Esc |
Ask 通过强大的上下文理解和智能代码分析功能,使您能够直接在编辑器中与 AI 进行高效的交流。无论是回答简单的代码问题,还是处理复杂的代码理解和修改任务,Ask 都能帮助您提高编码效率和代码质量。