在 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 Free 计划免费使用 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 扩展,您可能需要更新您的 keybindings.json。请参阅 GitHub issue 了解更多信息。

通过编辑建议减少干扰

默认情况下,编辑建议由边栏箭头指示,并且代码更改会显示在编辑器中。如果您想减少干扰,可以禁用在编辑器中显示代码更改,直到您按下 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. 输入 change completions model 并选择 GitHub Copilot: Change Completions Model 命令。

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

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

注意

可用模型的列表可能会随时间变化。模型选择器可能不会始终显示多个模型,如果/当我们发布预览模型和其他代码补全模型时,它们将在此处提供。如果您是 Copilot Business 或 Enterprise 用户,您的管理员需要在 GitHub.com 的 Copilot 策略设置中选择启用 Editor Preview Features,才能为您的组织启用某些模型。

技巧与诀窍

上下文

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

设置

代码补全设置

下一步编辑建议设置

后续步骤