在 VS Code 中试用

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

GitHub Copilot 充当人工智能驱动的结对编程助手,自动提供建议来补全您的代码、注释、测试等。它在您编写代码时直接在编辑器中提供这些建议,并且可以与各种编程语言和框架配合使用。

Copilot 提供两种建议类型

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

  • 下一处编辑建议 - 使用 Copilot 下一处编辑建议 (也称为 Copilot NES) 预测您的下一处代码编辑。根据您正在进行的编辑,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

导航并接受编辑建议

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

装订线中的箭头表示是否有可用的编辑建议。您可以将鼠标悬停在箭头上以浏览编辑建议菜单,其中包含键盘快捷方式和设置配置

Copilot NES gutter menu expanded

如果编辑建议位于当前编辑器视图下方,箭头将指向下方而不是右侧

Copilot NES with arrow directions changing

重要

如果您是 VS Code vim 扩展 的用户,请使用该扩展的最新版本,以避免与 NES 的键绑定发生冲突。

减少编辑建议带来的干扰

默认情况下,编辑建议通过装订线箭头指示,并在编辑器中显示代码更改。如果您希望减少干扰,可以禁用在编辑器中显示代码更改,直到您按下 Tab 键导航到建议或将鼠标悬停在装订线箭头上。

要禁用在编辑器中显示代码更改,请在设置编辑器中启用 editor.inlineSuggest.edits.showCollapsed 设置。或者,将鼠标悬停在装订线箭头上,从菜单中选择折叠显示选项。要重新启用显示代码更改,请禁用该设置或从装订线箭头菜单中选择展开显示

下一处编辑建议的使用场景

捕获和纠正错误

  • 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 菜单,然后勾选或取消勾选以启用或禁用代码补全的选项。

    Screenshot of the Copilot menu in the Status Bar with checkboxes to enabled or disable code completions and NES.

  • 或者,在设置编辑器中修改 github.copilot.enable 设置。

    为您要启用或禁用代码补全的每种语言添加一个条目。要为所有语言启用或禁用代码补全,请将 * 的值设置为 truefalse

更改用于补全的 AI 模型

不同的大型语言模型 (LLM) 在不同类型的数据上进行训练,可能具有不同的功能和优势。了解如何在 VS Code 中 选择不同的 AI 语言模型 的更多信息。

要更改用于在编辑器中生成代码补全的语言模型

  1. 打开命令面板 (F1)。

  2. 输入更改补全模型并选择GitHub Copilot: 更改补全模型命令。

  3. 在下拉菜单中,选择您要使用的模型。

或者,如果启用了命令中心,您可以单击 VS Code 标题栏中的 Copilot 菜单,然后在下拉菜单中单击配置代码补全。然后在下拉菜单中选择更改补全模型...并选择您要使用的模型。

注意

可用模型的列表可能会随时间变化。模型选择器可能不会总是显示多个模型,并且预览模型和其他代码补全模型将在发布时/何时在此处提供。如果您是 Copilot Business 或 Enterprise 用户,您的管理员需要在 GitHub.com 上的 Copilot 策略设置 中选择加入 Editor Preview Features,以启用组织的特定模型。

技巧与窍门

上下文

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

设置

代码补全设置

下一处编辑建议设置

下一步