VS Code 中的 GitHub Copilot

GitHub Copilot 是你在 Visual Studio Code 中的 AI 结对编程工具。在输入时获取代码建议,或在编辑器中使用内联聊天以更快地编写代码。通过 Copilot Edits 为你的项目添加新功能或解决错误,或在聊天中使用自然语言探索你的代码库。

Tip

如果您还没有Copilot订阅,您可以通过注册Copilot免费计划免费使用Copilot,并获得每月一定数量的完成和聊天互动限制。

GitHub Copilot 可以在多种场景中提供帮助。

入门指南

  1. 安装GitHub Copilot扩展。

    安装 GitHub Copilot 扩展

  2. 使用您的GitHub账户登录以使用Copilot。

    Tip

    如果您还没有订阅Copilot,可以从Copilot免费计划开始免费使用。按照设置指南中的步骤来设置Copilot订阅。

  3. 通过我们的Copilot 快速入门,了解 VS Code 中 Copilot 的关键功能。

键盘快捷键

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

Shortcut Description
⌃⌘I (Windows, Linux Ctrl+Alt+I) Open the Chat view and start a chat conversation with Copilot by using natural language.
⇧⌘I (Windows Ctrl+Shift+I, Linux Ctrl+Shift+Alt+I) Open the Copilot Edits view and start a code editing session across multiple files.
⇧⌥⌘L (Windows, Linux Ctrl+Shift+Alt+L) Open Quick Chat and ask a quick question to Copilot.
⌘I (Windows, Linux Ctrl+I) Start Inline Chat to send a chat request to Copilot directly from the editor. Use natural language or use / commands to give instructions to Copilot.

查看我们的Copilot 速查表,了解关键的 Copilot 命令和快捷键概览。

VS Code 中 GitHub Copilot 的使用案例

编辑器中的代码补全

  • Copilot 在您输入时建议代码。Copilot 分析您正在编辑的文件和相关文件的上下文,并在编辑器内提供建议。例如,开始输入方法的名称,Copilot 会根据您的编码风格建议实现。

    内联聊天建议实现一个'CalculateDaysBetweenDates' JavaScript函数

在多个文件上进行大规模更改的迭代

  • 启动一个AI驱动的代码编辑会话Copilot Edits将Copilot Chat的对话流程和Inline Chat的快速反馈结合在一起。在侧边进行持续的多轮聊天对话,同时享受内联代码建议的好处。

    截图显示Copilot编辑对“在联系页面添加反馈字段”的响应,并在编辑器中显示差异。

回答编程问题

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

    Copilot Chat 回答什么是单例模式

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

    内联聊天解释所选文本中使用的排序算法

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

    Copilot Chat 提供了关于向 Express 应用添加页面的逐步指导

代码重构与改进

  • 提供实施代码重构的建议。Copilot 使用代码库的上下文建议重构。例如,要求 Copilot 重构一个函数以不使用递归,或者建议一个可以提高性能的算法。

    内联聊天重构以使用不同的排序算法

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

    Copilot 内联聊天建议改进错误处理

修复问题

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

    内联聊天 /fix 用于建议安装缺失库的错误

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

    Copilot Chat /fixTestFailure 用于识别并建议修复失败的测试

  • 建议终端命令修复。当命令在终端中运行失败时,Copilot会在边栏显示一个闪光点,提供快速修复以解释发生了什么。

    与@terminal #terminalLastCommand和Copilot的答案快速聊天

启动你的项目

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

    请求@workspace代理使用TypeScript搭建一个新的Node.js项目

  • 使用自然语言搭建一个新的Jupyter笔记本。通过使用/newNotebook生成一个基于描述预配置的新笔记本。例如,要搭建一个加载、检查和可视化样本数据集的新笔记本,可以使用提示Copilot:“@workspace /newNotebook 下载泰坦尼克号数据集并使用MatPlotLib显示关键信息”。

    请求@workspace代理搭建一个新的笔记本,读取泰坦尼克号数据,并使用MatPlotLib进行可视化

生成单元测试用例

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

    聊天视图显示/setupTests斜杠命令,用于为JavaScript和TypeScript设置测试框架

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

    聊天视图显示用于在C#计算器类中为Divide方法生成单元测试的/tests斜杠命令

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

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

生成代码文档

  • 为多种语言生成代码文档,针对编辑器中打开的代码或你在编辑器中高亮的代码片段。使用/doc或Copilot智能操作来帮助你生成有意义的代码文档。

    内联聊天/文档示例,用于生成计算器类的文档代码注释

生产力提升

  • AI生成的提交信息和PR描述基于提交中的代码更改或拉取请求中的更改。使用Source Control视图或GitHub PR扩展中的sparkle按钮生成一个标题和描述,总结您的更改。

    悬停在源代码控制输入框的闪烁按钮上显示生成提交信息

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

    聊天视图,回答“隐藏编辑器概览”

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

    内联聊天建议为Python文件中的符号提供新名称

  • 语义搜索结果(预览)。搜索视图不仅列出了文件中与搜索文本完全匹配的内容,还列出了基于搜索文本语义相关的匹配项。

    搜索视图显示与搜索条件不完全匹配的语义搜索结果。

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

    截图显示你可以问复杂的问题,比如“列出src目录中最大的5个文件”

下一步

额外资源

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

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