尝试以扩展 VS Code 中的代理模式!

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

GitHub Copilot 充当 AI 驱动的结对程序员,自动提供代码、注释、测试等建议。它在您编写代码时直接在编辑器中提供这些建议,并且可以与多种编程语言和框架协同工作。

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 如何将 add 方法的输入参数命名方案应用于建议的 subtract 方法。

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

通过小睡功能,您可以暂时禁用编辑器中的所有代码补全。要小睡代码补全,请选择状态栏中的 Copilot 菜单,然后选择 小睡 按钮以将小睡时间增加五分钟。要恢复代码补全,请选择 Copilot 菜单中的 取消小睡 按钮。

Screenshot of the Copilot menu in the Status Bar with Snooze and Cancel Snooze buttons.

或者,使用命令面板中的 小睡内联建议取消小睡内联建议 命令。

更改补全的 AI 模型

不同的大型语言模型 (LLM) 经过不同类型的数据训练,可能具有不同的能力和优势。了解如何在 VS Code 中选择不同的 AI 语言模型

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

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

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

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

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

注意

可用模型的列表可能会随时间而变化。模型选择器可能不总是显示多个模型,并且如果我们发布它们,预览模型和其他代码补全模型将可用。如果您是 Copilot Business 或 Enterprise 用户,您的管理员需要通过在 GitHub.com 上的Copilot 策略设置中选择启用 编辑器预览功能 来为您的组织启用某些模型。

提示与技巧

上下文

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

设置

代码补全设置

下一个编辑建议设置

后续步骤