🚀 在 VS Code 中获取

在 VS Code 中使用 GitHub Copilot 进行代码补全

GitHub Copilot 充当 AI 驱动的结对程序员,自动提供建议来完成你的代码、注释、测试等。 它在你编写代码时直接在编辑器中提供这些建议,并且可以与各种编程语言和框架一起使用。

Copilot 提供两种类型的建议

  • 代码补全 - 在编辑器中开始键入,Copilot 会提供与你的编码风格匹配并考虑你现有代码的代码建议。

  • 下一个编辑建议(预览版) - 使用 Copilot 下一个编辑建议(又名 Copilot NES)预测你的下一个代码编辑。 基于你正在进行的编辑,Copilot NES 既可以预测你想要进行的下一个编辑的位置,也可以预测该编辑应该是什么。

入门指南

  1. 安装 GitHub Copilot 扩展。

    安装 GitHub Copilot 扩展

  2. 使用你的 GitHub 帐户登录以使用 Copilot。

    提示

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

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

内联建议

Copilot 会在你键入时提供代码建议:有时是当前行的补全,有时是全新的代码块。 你可以接受全部或部分建议,也可以继续键入并忽略建议。

请注意在以下示例中,Copilot 如何使用暗淡的幽灵文本建议 calculateDaysBetweenDates JavaScript 函数的实现

JavaScript ghost text suggestion.

当向你展示内联建议时,你可以使用 Tab 键接受它。

Copilot 尝试对你代码中已有的代码建议应用相同的编码风格。 请注意在以下示例中,Copilot 如何为建议的 subtract 方法应用与 add 方法相同的输入参数命名方案。

JavaScript ghost text suggestion.

部分接受建议

你可能不想接受 GitHub Copilot 的整个建议。 你可以使用 ⌘→(Windows、Linux Ctrl+Right 键盘快捷键来接受建议的下一个单词或下一行。

备选建议

对于任何给定的输入,Copilot 可能会提供多个备选建议。 你可以将鼠标悬停在建议上以查看任何其他建议。

Hovering over inline suggestions enables you to select from multiple suggestions

从代码注释生成建议

你可以使用代码注释提供关于你期望的代码的提示,而不是依赖 Copilot 提供建议。 例如,你可以指定要使用的算法或概念类型(例如,“使用递归”或“使用单例模式”),或者要添加到类中的方法和属性。

以下示例展示了如何指示 Copilot 在 TypeScript 中创建一个类来表示学生,并提供有关方法和属性的信息

Use code comments to let Copilot generate a Student class in TypeScript with properties and methods.

下一个编辑建议(预览版)

内联建议非常适合自动完成一段代码。 但是,由于大多数编码活动都是编辑现有代码,因此 Copilot 代码补全的自然演进也是帮助编辑,包括在光标处和更远处进行编辑。 编辑通常不是孤立进行的 - 在不同场景中需要进行哪些编辑存在逻辑流程。 Copilot 下一个编辑建议 (Copilot NES) 就是这种演进。

基于你正在进行的编辑,Copilot NES 既可以预测你想要进行的下一个编辑的位置,也可以预测该编辑应该是什么。 Copilot NES 帮助你保持流畅的工作状态,建议与你当前工作相关的未来更改,你可以简单地按 Tab 键快速导航并接受 Copilot 的建议。 建议可能跨越单个符号、整行或多行,具体取决于潜在更改的范围。

启用编辑建议

Copilot NES 目前处于预览版。 你可以通过 VS Code 设置 github.copilot.nextEditSuggestions.enabled 启用它

  1. 打开 VS Code 设置编辑器(⌘,(Windows、Linux Ctrl+,
  2. 搜索 github.copilot.nextEditSuggestions.enabled
  3. 启用设置

如果你是 Copilot Business 或 Enterprise 用户,除了在编辑器中设置 github.copilot.nextEditSuggestions.enabled 之外,你的组织管理员还必须选择使用 Copilot“编辑器预览功能”。

你可以了解有关 管理组织中 Copilot 策略 的更多信息。

导航和接受编辑建议

你可以使用 Tab 键快速导航建议的代码更改,从而节省你查找下一个相关编辑的时间(无需手动搜索文件或引用)。 然后,你可以再次使用 Tab 键接受建议。

装订线中的箭头指示是否有可用的编辑建议。 你可以将鼠标悬停在箭头上以浏览编辑建议菜单,其中包括键盘快捷键和设置配置:Copilot NES 装订线菜单已展开

如果编辑建议低于当前编辑器视图,箭头将向下而不是向右指向:Copilot NES 箭头方向更改

下一个编辑建议的用例

捕捉和纠正错误

  • Copilot 可以帮助解决简单的错误,例如拼写错误。 它会建议修复缺少或交换字母的地方,例如 cont x = 5conts x = 5,它们应该是 const x = 5

    Copilot NES fixing a typo from "conts" to "const"

  • Copilot 还可以帮助解决逻辑上更具挑战性的错误,例如反转的三元表达式

    Copilot NES fixing a fibonacci logic mistake

    或者应该使用 && 而不是 || 的比较

    Copilot NES fixing an if statement mistake

更改意图

  • Copilot 会建议对你代码的其余部分进行更改,以匹配新的意图更改。 例如,当将类从 Point 更改为 Point3D 时,Copilot 将建议向类定义添加 z 变量。 接受更改后,Copilot NES 接下来建议将 z 添加到距离计算中

    Copilot NES gif for updating Point to Point3D

重构

  • 在一个文件中重命名变量一次,Copilot 将建议在其他所有地方更新它。 如果你使用新名称或命名模式,Copilot 会建议类似地更新后续代码。

    Copilot NES suggesting change after updating function name

  • 匹配代码风格。 复制粘贴一些代码后,Copilot 将建议如何调整它以匹配粘贴发生处的当前代码。

进一步配置编辑建议

要使用 Copilot NES,你必须设置 github.copilot.nextEditSuggestions.enabled。 你还可以使用几个额外的设置来配置你的 Copilot NES 体验

  • editor.inlineSuggest.edits.codeShifting:如果你从不希望 Copilot NES 移动你的代码以显示建议,则可以禁用此设置。

  • editor.inlineSuggest.edits.renderSideBySide:

    • auto(默认):如果视口中有足够的空间,则并排显示较大的建议,否则建议显示在相关代码下方。
    • never:始终将较大的建议显示在相关代码下方。

提示与技巧

上下文

为了给你相关的内联建议,Copilot 会查看编辑器中的当前文件和打开的文件,以分析上下文并创建适当的建议。 在使用 Copilot 时,在 VS Code 中打开相关文件有助于设置此上下文,并使 Copilot 能够更全面地了解你的项目。

启用或禁用代码补全

你可以临时启用或禁用所有语言或仅特定语言的代码补全。

  1. VS Code 状态栏中的 GitHub Copilot 状态图标指示 GitHub Copilot 是启用还是禁用。

    Screenshot showing the VS Code status bar, highlighting the Copilot icon that indicates Copilot is active.

  2. 要启用或禁用 Copilot 补全,首先在状态栏中选择 GitHub Copilot 图标。

  3. 如果你要禁用 GitHub Copilot,系统会询问你是要全局禁用建议,还是为当前正在编辑的文件的语言禁用建议。

    • 要全局禁用 GitHub Copilot 的建议,请选择全局禁用
    • 要为指定语言禁用 GitHub Copilot 的建议,请选择为 <语言> 禁用

    Screenshot showing the VS Code command menu for Copilot, highlighting the options to disable completions.

设置

  • editor.inlineSuggest.enabled - 启用或禁用内联补全。

  • editor.inlineSuggest.fontFamily - 配置内联补全的字体。

  • editor.inlineSuggest.showToolbar - 启用或禁用内联补全显示的工具栏。

  • editor.inlineSuggest.syntaxHighlightingEnabled - 启用或禁用内联补全的语法突出显示。

  • github.copilot.nextEditSuggestions.enabled - 启用 Copilot 下一个编辑建议 (Copilot NES)。

  • editor.inlineSuggest.edits.codeShifting - 配置 Copilot NES 是否能够移动你的代码以显示建议。

  • editor.inlineSuggest.edits.renderSideBySide - 配置 Copilot NES 是否可以在可能的情况下并排显示较大的建议,或者 Copilot NES 是否应始终将较大的建议显示在相关代码下方。

后续步骤

  • 开始使用入门级 Copilot 教程,以设置 VS Code 中的 Copilot 并亲身体验 Copilot。

  • 了解如何通过 Copilot Chat 使用 AI 聊天对话。

其他资源

你可以在 Copilot 了解更多信息,以及如何在 GitHub Copilot 文档 中了解如何在 VS Code 中使用它。

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