在 VS Code 中使用聊天功能
在 Visual Studio Code 中使用聊天功能,可以通过自然语言查询代码库或修改整个项目。聊天功能可以在不同模式下操作,针对您的用例进行优化,从提出问题到进行多文件编辑或启动自主编码工作流。
您可能需要在以下情况使用 VS Code 中的聊天功能:
- 理解代码 - “解释此身份验证中间件如何工作”
- 调试问题 - “为什么我在此循环中遇到空引用?”
- 获取代码建议 - “向我展示如何在 Python 中实现二叉搜索树”
- 优化性能 - “帮助我提高此数据库查询的效率”
- 学习最佳实践 - “处理异步函数中错误的推荐方法是什么?”
- 获取 VS Code 提示 - “如何自定义键盘快捷方式?”
先决条件
- 安装最新版本的Visual Studio Code
- 访问 Copilot。Copilot 免费计划可获得每月限量的补全和聊天交互。
在 VS Code 中访问聊天
您可以在 VS Code 中以不同的方式使用自然语言聊天,每种方式都针对特定的用例和任务进行了优化。
体验 | 用例 | 用户体验 |
---|---|---|
聊天视图 ⌃⌘I(Windows, Linux Ctrl+Alt+I) |
在侧边专用视图中进行持续的多轮聊天对话。在不同的聊天模式之间切换,以提出问题、跨文件进行代码编辑或启动自主编码工作流。 | ![]() |
行内聊天 ⌘I(Windows, Linux Ctrl+I) |
直接从编辑器(编辑器行内聊天)或集成终端(终端行内聊天)启动聊天对话,以获得即时建议。 | ![]() |
快速聊天 ⇧⌥⌘L(Windows, Linux Ctrl+Shift+Alt+L) |
快速提问,然后回到您正在做的事情。 | ![]() |
通过相应的键盘快捷方式或通过 VS Code 标题栏中的 Copilot 菜单访问每种聊天体验。
选择聊天模式
聊天模式是预定义的配置,用于自定义 VS Code 中的聊天功能以执行特定任务,例如提问、进行代码编辑或执行自主编码任务。VS Code 内置了三种聊天模式:提问、编辑和代理。您还可以为特定场景定义自己的聊天模式,例如规划新功能或研究实现选项。
要切换聊天模式,请打开聊天视图(⌃⌘I(Windows, Linux Ctrl+Alt+I)),然后从聊天模式下拉列表中选择所需的模式。
了解更多关于 VS Code 中的聊天模式。
更改语言模型
VS Code 提供了多种内置语言模型可供选择。有些模型针对快速编码任务进行了优化,而另一些则更适合较慢的规划和推理任务。使用聊天输入字段中的模型选择器来更改 Copilot 用于生成响应的模型。
您还可以添加来自其他模型提供商的模型(预览)并在聊天中使用它们。有关如何使用来自其他提供商的模型的更多详细信息。
可用模型的列表可能会因您的 Copilot 订阅而异,并可能随时间变化。有关可用语言模型的更多信息,请参阅 GitHub Copilot 文档。
提交聊天提示
使用自然语言在 VS Code 中进行聊天请求。根据聊天模式,您可以查询代码库、获取代码建议,或在项目中跨多个文件进行代码编辑并调用专门工具。
聊天响应可能包含丰富的组合内容,例如 Markdown 文本、代码块、按钮、文件树等等。
要获得更相关的响应或引用工作区中的特定文件或工件(例如测试失败或终端输出),请通过 #-提及相关上下文项来将上下文添加到您的聊天提示中。
添加聊天上下文
VS Code 会尝试根据您的自然语言提示确定聊天请求的意图和范围。为了获得更相关的响应,请在您的聊天提示中提供额外的上下文,例如文件、测试结果、终端输出等。
使用聊天视图中的添加上下文按钮或输入 #-提及来将上下文添加到您的聊天提示中。例如,#codebase
指代整个代码库,或 #<file | folder | symbol>
指代工作区中的特定文件、文件夹或符号。在聊天输入字段中键入 #
以查看上下文项列表。
您还可以通过键入 #
后跟工具名称来直接在提示中引用代理模式工具。这在所有聊天模式(提问、编辑和代理模式)中都可以完成。例如,使用 #fetch
工具将网页内容添加为聊天提示的上下文,或使用 #githubRepo
在 GitHub 存储库中执行代码搜索。
获取有关向聊天提示添加上下文的更多详细信息。
提示示例
询问一般技术主题
“什么是链表?”
“十大流行网络框架”
理解代码库
“解释身份验证在 #codebase 中如何工作”
“数据库连接字符串是在哪里配置的?#codebase”
“如何构建此 #codebase?”
“#getUser 在哪里使用?#usages”
向您的应用添加新功能
“创建一个关于页面并将其包含在导航栏中 #codebase”
“为更新地址信息添加新的 API 路由 #codebase”
“添加登录按钮并根据 #styles.css 设置其样式”
修复工作区中的问题
“修复 #problems 中的问题”
“修复失败的测试 #testFailure”
引用网络内容
“如何在 React 18 中使用 'useState' 钩子?#fetch https://18.reactjs.ac.cn/reference/react/useState#usage”
“构建一个 API 端点来获取地址信息,使用 #githubRepo contoso/api-templates 中的模板”
有关更多提示示例,请参阅 GitHub 文档中的Copilot Chat Cookbook。
在聊天输入字段中键入 /help
以获取有关 Copilot 以及如何与聊天交互的帮助。
视觉
聊天支持视觉功能,这意味着您可以将图像作为上下文附加到聊天提示中并提问。例如,附加一段代码的屏幕截图并要求解释它,或附加一个 UI 草图并要求代理模式实现它。
您可以将图像从 Web 浏览器拖放到聊天视图中以将其添加为上下文。
聊天历史
当您在聊天会话中迭代并发送多个聊天提示时,VS Code 会将聊天提示和响应的历史记录用作当前聊天提示的上下文。这意味着您可以提出后续问题或澄清您之前的问题,而无需重复上下文。例如,您可以问“这与……有什么不同”、“现在添加一个测试用例”、“解释更详细”等等。
在任何时候,您都可以使用聊天视图中的新建聊天(+
)按钮(⌃L(Windows, Linux Ctrl+L))创建新的聊天会话。如果您想切换到不同的主题并避免之前的上下文和历史记录,这会很有用。
要查看聊天会话历史记录,请选择聊天视图中的显示聊天...按钮或使用命令面板中的聊天:显示聊天...命令。选择一个历史记录条目以在聊天视图中打开该聊天会话并继续对话。
您可以使用命令面板中的聊天:导出聊天...命令将聊天会话的所有提示和响应导出为 JSON 文件。
撤销聊天请求
您可以在活动聊天会话中撤销(撤销)聊天请求。当您撤销聊天请求时,您还会从对话历史记录中删除相应的响应。
如果您想从该会话的对话历史记录中删除特定的提示和响应,撤销请求会很有用。例如,如果您注意到语言模型没有提供相关的响应或正在走向不需要的方向。
您有两种选择来撤销聊天请求:
-
撤销上一个聊天请求:使用聊天视图工具栏中的撤销上一个请求按钮。
-
撤销特定聊天请求:将鼠标悬停在聊天视图中的聊天请求上,然后选择请求旁边的撤销请求(删除)(
x
)按钮(或按⌘Backspace(Windows, Linux Delete))。当您撤销一个请求时,它也会撤销聊天会话中所有后续的请求和响应。
在编辑器选项卡或单独窗口中打开聊天
您可以将聊天会话打开为一个单独的编辑器选项卡,甚至作为一个单独的浮动窗口。此功能使您能够同时打开多个聊天会话。
在聊天视图中,选择右上角的 ...
图标,然后选择在编辑器中打开聊天或在新窗口中打开聊天。
以下屏幕截图显示了在浮动窗口中运行的聊天视图
默认情况下,聊天会话以紧凑模式打开,该模式隐藏了标题栏和其他 UI 元素。选择浮动窗口标题栏中的紧凑模式图标以在紧凑模式和正常模式之间切换。
(可选)启用始终置顶模式以始终将聊天视图保持在其他窗口的顶部。
了解更多关于 VS Code 中的浮动窗口。
使用语音交互
借助 VS Code 中的语音控制功能,由VS Code 语音扩展提供,您可以使用语音启动聊天对话:
- 使用您的语音听写聊天提示
- 使用“Hey Code”语音命令启动与 Copilot Chat 的语音会话
- 使用“按住说话”模式加速聊天的语音输入
了解更多关于如何在 VS Code 中使用语音交互。
隐私和透明度
为了为私人存储库启用更多工作区搜索功能,我们需要额外的权限。如果我们检测到尚未拥有这些权限,我们将在启动时请求它们。一旦获得授权,我们将安全地存储会话以备将来使用。
了解更多关于 GitHub Copilot 的安全、隐私和透明度信息,请访问GitHub Copilot 信任中心。
常见问题
如何在不同的聊天模式之间进行选择?
不同的聊天模式针对不同的用例进行了优化:
-
使用编辑器行内聊天直接在活动编辑器中提问或进行编辑。这对于进行代码更改或提出与活动文件相关的问题非常有用。
-
使用提问模式询问有关代码库或技术概念的问题。响应可能包含代码建议,您可以手动和单独地将其应用于代码库。更改不会自动应用于代码库。
-
使用编辑模式根据您的聊天提示直接跨代码库中的多个文件应用编辑。您提供相关上下文和文件。
-
使用代理模式启动代理编码工作流,Copilot 自主确定相关上下文和文件,确定需要执行哪些任务以完成请求。然后,它独立迭代以实现所需的结果,并在出现问题时进行修复。代理模式可以调用工具来执行专门的任务,例如运行终端命令、验证测试用例或访问 API。
其他资源
您可以在GitHub Copilot 文档中阅读更多关于GitHub Copilot以及如何在 VS Code 中使用它的信息。
或者查看 YouTube 上的VS Code Copilot 系列,您可以在其中找到更多介绍性内容以及使用 Copilot 的特定编程语言视频,包括Python、C#、Java、PowerShell、C++ 等。