现已推出!阅读 10 月份的新功能和修复。

VS Code 中的 GitHub Copilot

GitHub Copilot 扩展是一个 AI 结对编程工具,可帮助您更快、更智能地编写代码。您可以在 Visual Studio Code 中使用 Copilot 扩展来生成代码、从生成的代码中学习,甚至配置编辑器。

在 VS Code 中使用 GitHub Copilot,您可以

  • 在编写和迭代代码时获得内联代码建议。
  • 启动聊天对话以生成或重构源代码、生成文档注释或生成单元测试。
  • 获得帮助修复代码中的错误,或在终端中运行命令时解决错误。
  • 提出问题以帮助快速了解新的代码库,或加速学习新的编程语言或框架。
  • 使用聊天功能来发现和配置您的 VS Code 设置。

先决条件

按照以下步骤 在 VS Code 中设置 GitHub Copilot

Copilot 教程

键盘快捷键

使用以下键盘快捷键与 Copilot 开始聊天对话

快捷键 描述
⌃⌘I (Windows、Linux Ctrl+Alt+I) 打开聊天视图,并使用自然语言与 Copilot 开始聊天对话。
⇧⌘I (Windows Ctrl+Shift+I、Linux Ctrl+Shift+Alt+I) 打开Copilot 编辑视图,并在多个文件中开始代码编辑会话。
⇧⌥⌘L (Windows、Linux Ctrl+Shift+Alt+L) 打开快速聊天,向 Copilot 提问。
⌘I (Windows、Linux Ctrl+I) 开始内联聊天,直接从编辑器向 Copilot 发送聊天请求。使用自然语言或使用/ 命令向 Copilot 提供指令。

查看我们的 Copilot 备忘单,了解 Copilot 的关键命令和快捷键概述。

GitHub Copilot 在 VS Code 中的用例

GitHub Copilot 可以提供各种场景的帮助

编辑器中的代码补全

  • Copilot 在您键入时建议代码。Copilot 分析您正在编辑的文件和相关文件中的上下文,并从编辑器中提供建议。例如,开始键入方法的名称,Copilot 将建议实现,遵循您的编码风格。

    Inline chat suggests the implementation of a 'CalculateDaysBetweenDates' JavaScript function

迭代跨越多个文件的大型更改

  • 启动一个 AI 驱动的代码编辑会话Copilot 编辑 将 Copilot 聊天的对话流程和内联聊天的快速反馈结合在一个体验中。进行持续的、多轮的聊天对话,同时受益于内联代码建议。

    Screenshot showing the Copilot Edits response for "Add a feedback field in the contact page" and showing the diff in the editor.

回答编码问题

  • 为常见的编码任务和挑战提供指导和支持。向 Copilot 询问语法或一般的编程概念,而无需浏览文档或搜索在线论坛。Copilot 以自然语言格式或代码片段格式提供响应。例如,您可以提出以下问题:“递归是什么?”或“如何在 Java 中创建一个单例?”。

    Copilot Chat answering what a singleton is

  • 通过解释选定的代码来提高代码理解。Copilot 生成代码功能和目的的自然语言描述。如果您想要了解代码的行为,或者对于需要了解代码如何工作的非技术利益相关者,这可能很有用。

    Inline chat explaining which sorting algorithm is used in the selected text

  • 提供特定于您的代码库的指导。Copilot 具有您工作区的上下文,并且可以提供针对您的项目的逐步指导和代码示例。例如,“如何添加一个联系页面?”或“如何从数据库中读取客户数据?”。

    Copilot Chat provides step-by-step guidance about adding a page to an Express app

代码重构和改进

  • 提供对实现代码重构的建议。Copilot 使用您的代码库的上下文建议重构。例如,请 Copilot 将一个函数重构为不使用递归,或建议一个可以提高性能的算法。

    Inline chat refactoring to use different sorting algorithm

  • 建议对选定代码的潜在改进,例如改进的错误和边界情况处理,或更改逻辑流程以使代码更易读。

    Copilot inline chat suggesting improvements to error handling

修复问题

  • 使用/fix 命令建议对代码中的 bug 进行修复,根据错误或问题的上下文建议代码片段和解决方案。例如,如果您的代码产生错误消息或警告,Copilot 聊天可以根据错误消息、代码语法和周围代码建议可能的修复。更改可能包括对变量、控制结构或函数调用的更改,这些更改可以解决问题。

    Inline chat /fix for an error proposing to install a missing library

  • 为失败的测试建议修复(预览)。当您为代码运行自动化测试时,Copilot 可以使用/fixTestFailure 命令为失败的测试建议代码修复。

    Copilot Chat /fixTestFailure for identifying and suggesting a fix for a failing test

  • 建议终端命令修复。当命令在终端中无法运行时,Copilot 会在代码行边距显示闪烁的图标,提供快速修复来解释发生了什么。

    Quick Chat with @terminal #terminalLastCommand and Copilot's answer

快速启动您的项目

  • 使用 /new 为您的技术选择生成一个新的 VS Code 工作区,快速开始一个新项目。选择您的技术栈,预览工作区文件,并让 Copilot 为您构建整个工作区。

    Asking the @workspace agent to scaffold a new Node.js project using TypeScript

  • 使用自然语言构建一个新的 Jupyter 笔记本。使用 /newNotebook 生成一个基于描述预配置的新笔记本。例如,要构建一个加载、检查和使用 MatPlotLib 可视化示例数据集的新笔记本,请使用 "@workspace /newNotebook 下载 titanic 数据集并使用 MatPlotLib 显示关键信息" 来提示 Copilot。

    Asking the @workspace agent to scaffold a new notebook that reads titanic data, and visualizes with MatPlotLib

生成单元测试用例

  • 根据您的代码库配置您的测试框架设置。例如,如果您有一个 JavaScript 和 TypeScript 项目,Copilot 会建议合适的测试框架以及为您的工作区配置它们的步骤。

    Chat view showing the /setupTests slash command to set up a testing framework for JavaScript and TypeScript

  • 根据编辑器中打开的代码或您在编辑器中突出显示的代码片段,为您的测试框架编写单元测试用例。Copilot 会识别您的测试框架和编码风格,并生成匹配的代码片段。

    Chat view showing the /tests slash command to generate unit tests for the Divide method in a C# calculator class

  • 识别并为可能难以手动识别的边缘情况和边界条件编写测试用例。例如,Copilot 可以建议用于错误处理、空值或意外输入类型的测试用例。

  • 建议断言,根据代码的上下文和语义确保函数正常工作。例如,生成断言以确保函数输入参数有效。

生成代码文档

  • 为编辑器中打开的代码或您在编辑器中突出显示的代码片段生成多种语言的代码文档。使用 /doc 或 Copilot 智能操作来帮助您生成有意义的代码文档。

    Inline chat /doc example to generate documentation code comments for a calculator class

生产力提升

  • 根据提交或拉取请求中的代码更改生成 AI 生成的提交消息和 PR 描述。使用源代码管理视图或 GitHub PR 扩展中的“闪烁”按钮生成总结更改的标题和描述。

    Hover over Source Control input box sparkle buttons shows Generate Commit Message

  • 在命令面板中寻求帮助,帮助您在 VS Code 中找到相关命令。您可以描述功能,Copilot 可以帮助识别匹配的功能。例如,在命令面板中键入“代码预览在滚动条中”,Copilot 可以识别您指的是 editor.minimap 设置。

    Chat view with answer to "hide editor overview"

  • AI 生成的符号重命名建议。当您重命名代码中的符号时,Copilot 会根据符号的上下文和代码库建议一个新名称。

    Inline chat suggesting a new name for a symbol in a Python file

  • 语义搜索结果(预览)。搜索视图除了列出文件中的精确文本匹配之外,还会根据您的搜索文本列出语义相关的匹配项。

    Search view showing semantic search results that are not an exact match for the search criteria.

  • 使用终端内联聊天来询问有关终端或如何使用特定 shell 命令的问题。例如,您可以提出以下问题:“列出 src 目录中前 5 个最大的文件”,或“如何启用 shell 集成”。

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

后续步骤

其他资源

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

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