🚀 在 VS Code 中

在 VS Code 中使用 Copilot Chat

借助 Visual Studio Code 中的 Copilot Chat,通过聊天提问即可获得代码建议、增强代码理解,甚至配置编辑器。无需在文档或在线论坛中搜索答案,直接在 VS Code 中向 Copilot 提问,并将建议立即应用到你的代码库中。

除了使用 chat 获取建议外,Copilot 还可以直接在项目中的多个文件中进行编辑。在这种情况下,您可以考虑使用Copilot 编辑。您可以轻松地将现有的聊天对话移动到 Copilot 编辑

提示

如果您还没有 Copilot 订阅,可以通过注册Copilot 免费计划来免费使用 Copilot,并获得每月有限的补全和聊天互动次数。

在 VS Code 中访问 Copilot Chat

您可以通过多种方式在 VS Code 中向 Copilot 提交提示,具体取决于您的工作流程。

  • Chat 视图:在侧边栏拥有一个 AI 助手,帮助您解答问题并提供代码建议 (⌃⌘I (Windows、Linux Ctrl+Alt+I))。
  • 内联 Chat:直接从编辑器或集成终端启动内联聊天对话,以获得就地建议 (⌘I (Windows、Linux Ctrl+I))。
  • 快速 Chat:提出快速问题并返回到您正在进行的工作 (⇧⌥⌘L (Windows、Linux Ctrl+Shift+Alt+L))。

要访问聊天体验,请使用相应的键盘快捷键或使用 VS Code 标题栏中的 Copilot 菜单。

Screenshot of the Copilot Chat menu in the VS Code Command Center

提交你的第一个提示

您可以要求 Copilot Chat 提供代码建议、增强代码理解、为您的项目设置调试或帮助配置 VS Code。

  1. 使用 (⌃⌘I (Windows、Linux Ctrl+Alt+I)) 键盘快捷键打开 Chat 视图,或在标题栏的 Copilot 菜单中选择 打开 Chat

    如果您想使用 chat 直接在活动编辑器中进行编辑,请改用内联 Chat (⌘I (Windows、Linux Ctrl+I))。

  2. 在聊天输入字段中输入您的提示,或选择一个提示建议。

    一些示例提示

    • 询问有关编码和技术概念的问题 (“什么是链表?”“十大流行的 Web 框架”)
    • 集思广益,讨论如何最好地解决编码问题 (“如何为我的项目添加身份验证?”)
    • 解释一段代码 (“@workspace /explain”“这段代码是做什么的?”)
    • 提出代码修复建议 (“@workspace /fix”“此方法抛出 FileNotFoundException”)
    • 生成单元测试用例或代码文档 (“@workspace /tests”“@workspace /doc”)
    • 询问有关 VS Code 设置的问题 (@vscode 我如何禁用小地图?)

    有关更多提示示例,请参阅 GitHub 文档中的Copilot Chat Cookbook

  3. 查看来自 Copilot 的响应。

    响应可能包含文本、代码块、按钮、代码符号链接、文件树或其他富内容。获取有关如何将代码建议应用到您的代码库的更多信息。

    要查看 Copilot 用于响应的资源,请选择聊天响应中的 使用了 n 个资源 下拉列表。您可以通过将上下文附加到您的聊天提示来帮助 Copilot 提供更相关的答案。

  4. 可选地,提出后续问题以改进响应。

    随着对话的进行,Copilot 会维护您的聊天消息和响应的历史记录

    要重新开始新的聊天会话,请使用 Chat 视图中的 新建 Chat (+) 按钮 (⌃L (Windows、Linux Ctrl+L))。

提示

在聊天输入字段中键入 /help 以获取有关 GitHub Copilot 以及如何与 Copilot Chat 互动的帮助。

更改 AI 模型

不同的大型语言模型 (LLM) 在不同类型的数据上进行训练,可能具有不同的能力和优势。借助 Copilot,您可以选择不同的模型,以获得最适合您需求的结果。

使用聊天输入字段中的模型选择器来更改 Copilot 用于生成响应的模型。

可用模型的列表可能因您的 Copilot 订阅而异,并且可能会随着时间的推移而更改。有关可用语言模型的更多信息,请参阅 GitHub Copilot 文档。

向你的聊天提示添加上下文

Copilot 尝试根据您的自然语言聊天提示确定您问题的意图和范围。在聊天响应中,选择 使用了 n 个资源 下拉列表以查看 Copilot 用于生成响应的资源。

为了帮助 Copilot 为您提供最佳和最相关的答案,请将上下文添加到您的聊天提示中。例如,附加特定文件、特定代码符号、当前编辑器选择等等。获取有关向您的聊天提示添加上下文的更多详细信息。

提示

通过在提示中添加 #codebase,让 Copilot 自动查找正确的文件。确保启用 github.copilot.chat.codesearch.enabled (预览) 设置以获得最佳结果。

聊天参与者

聊天参与者 就像领域专家,他们有自己擅长的专业知识,可以帮助您。您可以通过在聊天输入字段中键入“@”,然后输入参与者姓名来调用聊天参与者。有几个内置的聊天参与者,扩展程序也可以贡献聊天参与者。

要列出所有已安装的聊天参与者,请在聊天输入字段中键入 @

内置参与者 描述
@workspace 了解您的工作区中的代码。使用它来导航您的代码库,查找相关的类、文件等。

示例提示
  • @workspace 通知是如何调度的?
  • @workspace 添加表单验证,类似于新闻稿页面
@vscode 了解 VS Code 的功能、设置和 API。

示例提示
  • @vscode 当 vscode 虚假打开文件时,那东西叫什么名字?以及如何禁用它?
@terminal 了解集成终端 shell 及其内容。

示例提示
  • @terminal 如何撤消上次提交
  • @terminal 有关 #terminalLastCommand 的帮助
@github 了解 GitHub 存储库问题、PR 等,并具备相关技能。还可以使用 Bing API 执行 Web 搜索。获取有关使用 GitHub 技能的更多信息。

示例提示
  • @github 分配给我的所有未完成的 PR 是什么?
  • @github #web 最新的 VS Code 版本是什么

扩展程序贡献的聊天参与者

您可以从Visual Studio Code MarketplaceGitHub Marketplace安装其他聊天参与者。

通过 VS Code 扩展程序贡献的聊天参与者是客户端扩展程序,它们可以完全访问 VS Code 扩展程序 API 表面。

通过 GitHub App 贡献的聊天参与者不在您的本地计算机上运行,并且必须显式请求访问您的本地编辑器上下文。在您安装贡献聊天参与者的 GitHub App 后,当您第一次在 VS Code 中 @-mention 参与者时,系统会要求您授权其访问您的本地编辑器上下文。

注意

为了保护您的隐私,除非您选择“允许所有工作区”,否则您是否与来自 GitHub App 的聊天参与者共享编辑器上下文的偏好设置会按工作区保存。

以下是一些贡献聊天参与者的 VS Code 扩展程序的示例。转到Marketplace或使用集成的扩展视图 (⇧⌘X (Windows、Linux Ctrl+Shift+X)) 并按标签 chat-participant (tag:chat-participant) 搜索。

斜杠命令

斜杠命令 提供特定指令的快捷方式,避免您必须编写复杂的提示。要在提示中使用斜杠命令,请键入 / 字符,后跟命令。聊天参与者可以贡献他们自己的斜杠命令。

例如,@workspace /new Express app with pug and typescript 是一个快捷方式,用于生成新的工作区并在 TypeScript 中搭建使用 Pug 视图引擎的新 Express 应用程序。

一些常见的内置斜杠命令是

  • /clear:开始新的聊天会话
  • /help:获取有关使用 GitHub Copilot 的帮助
  • @workspace /explain (或 /explain):解释所选代码的工作原理
  • @workspace /fix (或 /fix):为所选代码中的问题提出修复建议
  • @workspace /new (或 /new):为新工作区或新文件搭建代码

要列出所有可用的斜杠命令,请在聊天输入字段中键入 /

聊天变量

使用聊天变量在您的提示中包含特定上下文。要使用聊天变量,请在聊天提示框中键入 #,后跟聊天变量。例如,#codebase 让 Copilot 查找要作为上下文添加的相关文件,或 #selection 将当前编辑器选择添加到您的聊天提示中。

获取有关向您的聊天提示添加上下文的更多信息。

内联 Chat

要在编辑器中直接进行编辑,请使用内联 Chat 提交提示。Copilot 在编辑器中就地提供代码建议,并带有您的代码。如果您在编辑器中选择了一段代码,Copilot 会将您的问题范围限定为该选择。

Copilot Inline Chat asking to not use recursion for a factorial function.

要调出编辑器内联 Chat

  • 在任何文件中,使用 ⌘I (Windows、Linux Ctrl+I) 键盘快捷键。
  • 或者,打开一个文件,然后从标题栏的 Copilot 菜单中选择 编辑器内联 Chat

收到代码建议后,您可以接受 (⌘Enter (Windows、Linux Ctrl+Enter)) 或放弃 (Escape) 更改。如果您对建议不满意,请输入新的提示,Copilot 将提供新的建议。

您不仅限于要求进行代码更改。使用内联 Chat 提出在您使用代码库时出现的更具探索性的问题。例如,使用诸如 解释这段代码我如何添加功能 X? 之类的提示。

提示

将上下文附加到您的内联 Chat 提示,以包含相关文件、代码符号或其他上下文。了解有关向您的聊天提示添加上下文的更多信息。

Chat 视图

Chat 视图是一个专用视图,在您处理代码时保持打开状态很有用,您可以在其中与 Copilot 进行多轮对话。

Copilot Chat view in the Secondary Side Bar and Explorer view in the Primary Side Bar.

要打开 Chat 视图

  • 使用 ⌃⌘I (Windows、Linux Ctrl+Alt+I) 键盘快捷键。
  • 或者,在标题栏的 Copilot 菜单中选择 打开 Chat

默认情况下,Chat 视图位于辅助侧边栏中。辅助侧边栏始终位于与主侧边栏相对的位置,因此您可以同时打开 Chat 视图和主侧边栏中的资源管理器、源代码管理或其他视图。

提示

您可以随时将 Chat 视图拖动到另一个位置,甚至将其作为编辑器打开。了解有关 VS Code 中的自定义布局的更多信息。

应用来自 chat 的代码块

Chat 响应可能包含一个或多个代码块。根据语言扩展,chat 响应中的代码块可能支持 IntelliSense,使您能够通过将鼠标悬停在方法和符号上来获取有关方法和符号的信息,或者转到它们的定义。

要将代码块应用到您的代码库,请将鼠标悬停在代码块上,然后选择 在编辑器中应用 按钮。Copilot 尝试将建议的更改应用到您现有的代码。

Screenshot of a Copilot Chat code block response, highlighting the actions to apply changes.

代码块的其他可用操作包括

  • 在当前光标位置插入代码块
  • 将代码块复制到剪贴板
  • 将代码块插入到集成终端
  • 将代码块插入到新文件

如果 Copilot Chat 检测到代码块包含 shell 命令,您可以使用 插入到终端 (⌃⌥Enter (Windows、Linux Ctrl+Alt+Enter)) 直接在集成终端中运行它。此选项创建或打开活动终端并插入命令文本,以便您运行。

Copilot Chat code block to list files with Insert into Terminal option visible

提示

使用 Chat: 下一个代码块 (⌥⌘PageDown (Windows、Linux Ctrl+Alt+PageDown)) 和 Chat 上一个代码块 (⌥⌘PageUp (Windows、Linux Ctrl+Alt+PageUp)) 在代码块之间导航。

您可以使用以下设置控制 chat 中代码块的字体

  • chat.editor.fontFamily
  • chat.editor.fontSize
  • chat.editor.fontWeight
  • chat.editor.lineHeight

聊天历史记录

您可以随时使用 Chat 视图中的 新建 Chat 按钮 (⌃L (Windows、Linux Ctrl+L)) 开始新的聊天会话。这对于询问 Copilot 关于不同主题的问题并避免之前的上下文和历史记录很有用。

Copilot Chat 会维护您之前的聊天会话的历史记录,您可以使用 Chat 视图中的 显示 Chat... 按钮或使用命令面板中的 Chat: 显示 Chat... 命令来访问这些记录。

快速选择列表显示之前的聊天记录列表,按最近时间排序。您可以选择一个聊天记录以在 Chat 视图中打开它。

Screenshot of the Chat view with the Show Chats... button highlighted

在聊天会话中,您可以从该会话的对话历史记录中删除特定的提示和相应的响应。将鼠标悬停在提示上,然后选择 x 控件。删除一个或多个提示以获得更相关的响应可能很有用。

Chat view with multiple prompts, highlighting the 'x' control to delete a chat prompt and response.

您可以使用命令面板中的 Chat: 导出 Chat... 命令,将聊天会话的所有提示和响应导出到 JSON 文件中。

快速 Chat

如果您想向 Copilot 提出快速问题,并且不想开始完整的 Chat 视图会话或在编辑器中打开内联 Chat,您可以使用快速 Chat 下拉列表。

Quick Chat dropdown

按键盘上的 ⇧⌥⌘L (Windows、Linux Ctrl+Shift+Alt+L) 调出快速 Chat。或者,在标题栏的 Copilot 菜单中选择 快速 Chat

如果您想继续对话,请使用下拉列表右上角的 在 Chat 视图中打开 按钮将快速 Chat 对话升级为完整的 Chat 视图会话。

Quick Chat Open in Chat View button

终端内联 Chat

编辑器中的内联 Chat类似,您可以在终端中调出 Copilot 内联 Chat,以帮助您回答与终端和 shell 命令相关的问题。

终端内联 Chat 使用 @terminal 聊天参与者,它具有有关集成终端的 shell 及其内容的上下文。例如,您可以提出诸如“如何安装 npm 包”或“列出 src 目录中最大的 5 个文件”之类的问题。

要在终端中启动内联 Chat,请在终端中时按 ⌘I (Windows、Linux Ctrl+I) 键盘快捷键。

Screenshot showing that you can ask complex questions like "list the top 5 largest files in the src dir"

一旦建议了命令,使用 运行 (⌘Enter (Windows、Linux Ctrl+Enter)) 在终端中运行该命令,或使用 插入 (⌥Enter (Windows、Linux Alt+Enter)) 将命令插入到终端中。

智能操作

对于几种常见的场景,您可以使用智能操作从 Copilot 获取帮助,而无需编写提示。这些智能操作的示例用于任务,例如生成提交消息、生成文档、修复代码、解释代码或审阅代码更改。

这些智能操作在整个 VS Code UI 中都可用。例如,您可以从编辑器上下文菜单或通过快速修复操作访问 Copilot 智能操作。

在编辑器中,您可以通过选择一段代码,右键单击,然后选择 Copilot 来访问智能操作。

Editor context menu with the Copilot menu group expanded

最强大的智能操作是 修复 操作,它可以帮助您纠正编码问题。选择编辑器中的闪光图标,然后选择 使用 Copilot 修复。有一个对应的 /fix 斜杠命令。

Quick fix a type mismatch error by using the Copilot smart action

类似地,有一个 Copilot > 生成文档 智能操作 (/doc 斜杠命令) 用于为您的代码生成文档。

使用语音互动

借助 VS Code 中的语音控制功能(由VS Code Speech 扩展程序提供),您可以使用语音发起聊天对话

  • 使用您的声音来口述您的聊天提示
  • 使用“Hey Code”语音命令启动与 Copilot Chat 的语音会话
  • 通过使用“按住说话”模式来加速聊天语音输入

了解有关如何在 VS Code 中使用语音互动的更多信息。

隐私和透明度

为了为私有存储库启用更多工作区搜索功能,我们需要额外的权限。如果我们检测到我们尚未拥有这些权限,我们将在启动时请求这些权限。一旦授予,我们将安全地存储会话以供将来使用。

Modal window asking for additional authentication for a private repository.

GitHub Copilot 信任中心中了解有关安全性、隐私和透明度的更多信息。

常见问题解答

我该如何在 Copilot 编辑、内联 Chat、Chat 视图和快速 Chat 之间进行选择?

下表提供了每个界面功能的比较。

功能 Copilot 编辑 Chat 视图 内联 Chat 快速 Chat
接收代码建议
多文件编辑 ✅* ✅*
在编辑器中预览代码编辑
代码审查流程
回滚更改
附加上下文
使用参与者和命令
生成 shell 命令
通用聊天

* 代码块包含在聊天对话中,需要手动应用到正确的文件

其他资源

您可以在GitHub Copilot中阅读有关 GitHub Copilot 文档以及如何在 VS Code 中使用它的更多信息。

或者查看 YouTube 上的VS Code Copilot 系列,您可以在其中找到更多入门内容和特定于编程的视频,用于将 Copilot 与 PythonC#JavaPowerShellC++ 等一起使用。

后续步骤