🚀 在 VS Code 中

在 VS Code 中使用聊天

在 Visual Studio Code 中使用聊天,通过使用自然语言询问有关您的代码库的问题或在您的项目中进行编辑。聊天可以在不同的模式下运行,针对您的用例进行优化,从提问到进行多文件编辑或启动代理式编码工作流程。

当您需要以下操作时,您可能需要在 VS Code 中使用聊天

  • 理解代码 - “解释此身份验证中间件的工作原理”
  • 调试问题 - “为什么我在此循环中收到空引用?”
  • 获取代码建议 - “向我展示如何在 Python 中实现二叉搜索树”
  • 优化性能 - “帮助我提高此数据库查询的效率”
  • 学习最佳实践 - “处理异步函数中的错误的推荐方法是什么?”
  • 获取 VS Code 技巧 - “如何自定义键盘快捷方式?”
提示

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

聊天模式

根据您的具体需求,您可以在不同的聊天模式之间进行选择

模式 描述 场景
提问 询问有关您的代码库或技术概念的问题。 了解一段代码如何工作,集思广益软件设计想法,或探索新技术。
编辑 在您的代码库中的多个文件中进行编辑。 直接在您的项目中应用代码编辑,以实现新功能、修复错误或重构代码。
代理 启动代理式编码工作流程。 在最少指导下自主实现新功能或项目的高级要求,调用工具执行专门的任务,迭代以解决出现的问题。

通过使用“聊天”视图中的“模式”下拉列表,在不同的聊天模式之间切换。

Screenshot showing the Copilot Chat view, highlighting the mode dropdown.

在 VS Code 中访问聊天

您可以通过几种方式在 VS Code 中访问聊天

  • 聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I)):在专用视图中进行持续的、多轮的聊天对话。随时在不同的聊天模式之间切换。默认情况下,“聊天”视图位于 VS Code 中的辅助侧边栏中。

  • 内联聊天 (⌘I (Windows, Linux Ctrl+I)):直接从编辑器(编辑器内联聊天)或集成终端(终端内联聊天)启动聊天对话,以获取就地建议。

  • 快速聊天 ():提出快速问题,然后回到您正在做的事情。

通过使用相应的键盘快捷键或通过 VS Code 标题栏中的 Copilot 菜单快速访问聊天。

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

提交聊天提示

您可以使用自然语言提出聊天请求。您可以询问有关您的代码库的问题、获取代码建议或集思广益想法。

打开“聊天”视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I)) 并在聊天输入字段中输入您的提示。请注意,响应可能包含富内容,例如 Markdown 文本、代码块、按钮、文件树等。

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

以下是一些您可以尝试的示例提示

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

有关更多提示示例,请参阅 GitHub 文档中的Copilot 聊天食谱

提示

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

在编辑器中打开聊天会话

您可以将聊天会话作为单独的编辑器选项卡,甚至作为单独的窗口打开。作为副作用,这使您可以同时打开多个聊天会话。

要在编辑器或单独的窗口中打开聊天会话

  1. 选择“聊天”视图右上角的 ... 图标。

    Screenshot of the Chat view, highlighting the three-dot menu that contains the Open in Editor and Open in New Window options.

  2. 选择“在编辑器中打开聊天”或“在新窗口中打开聊天”。

更改语言模型

Copilot 提供不同的内置语言模型供您选择。有些模型针对快速编码任务进行了优化,而另一些模型更适合较慢的规划和推理任务。使用聊天输入字段中的模型选择器来更改 Copilot 用于生成响应的模型。

Screenshot of the Copilot Chat model picker

您还可以从其他模型提供商(预览版)添加模型,并在聊天中使用它们。获取有关如何使用来自其他提供商的模型的更多详细信息。

注意

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

在聊天中引用工具

您可以通过键入 # 后跟工具名称,在提示中直接引用代理模式工具。您可以在所有聊天模式(提问、编辑和代理模式)中执行此操作。

添加聊天上下文

Copilot 尝试根据您的自然语言聊天提示确定您问题的意图和范围。为了帮助获得更相关的响应,请在您的聊天提示中提供其他上下文。例如,添加文件、测试结果、终端输出或可能与您的问题相关的其他类型的上下文。

Screenshot of the Copilot Chat view with the context menu open

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

提示

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

视觉(预览)

聊天支持视觉功能,这意味着您可以将图像作为上下文附加到您的聊天提示,并询问有关它的问题。例如,附加代码块的屏幕截图并要求解释它,或附加 UI 的草图并要求代理模式实现它。

提示

您可以将图像从 Web 浏览器拖放到“聊天”视图上,以将其添加为上下文。

聊天历史记录

“聊天”视图旨在进行多轮对话。Copilot 使用对话的历史记录作为您当前提示的上下文。这意味着您可以提出后续问题或澄清您之前的问题,而无需重复上下文。

在任何时候,您都可以通过使用“聊天”视图中的“新建聊天”(+)按钮 (⌃L (Windows, Linux Ctrl+L)) 来创建新的聊天会话。如果您想转到不同的主题并避免之前的上下文和历史记录,这会很有用。

您可以使用“聊天”视图中的“显示聊天...”按钮或使用命令面板中的“聊天:显示聊天...”命令来访问以前的聊天会话。选择一个条目以在“聊天”视图中打开该聊天会话。

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

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

恢复之前的请求

在聊天会话中,您可以从该会话的对话历史记录中删除特定的提示和相应的响应。将鼠标悬停在提示上,然后选择 x 控件。如果您注意到语言模型未提供相关的响应或正在朝着不需要的方向发展,则删除请求可能很有用。

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

使用语音交互

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

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

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

隐私和透明度

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

Modal window asking for additional authentication for a private repository.

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

常见问题

我该如何在不同的聊天模式之间进行选择?

不同的聊天模式针对不同的用例进行了优化

  • 使用编辑器内联聊天直接在活动编辑器中提问或进行编辑。这对于进行代码更改或询问范围限定为活动文件的问题很有用。

  • 使用提问模式询问有关您的代码库或技术概念的问题。响应可能包括代码建议,您可以手动且单独地将其应用于您的代码库。更改不会自动应用于您的代码库。

  • 使用编辑模式根据您的聊天提示直接在代码库中的多个文件中应用编辑。您为您的提示提供相关的上下文和文件。

  • 使用代理模式启动代理式编码工作流程,Copilot 在其中自主确定相关的上下文和文件,确定完成请求需要执行哪些任务。然后,它独立迭代以实现期望的结果,解决出现的问题。代理模式可以调用工具来执行专门的任务,例如运行终端命令、验证测试用例或访问 API。

其他资源

您可以在GitHub Copilot 以及如何在 VS Code 中使用它的GitHub Copilot 文档中阅读更多内容。

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

后续步骤