参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

在 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 为建议的 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 NES)正是这种演进。

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

要开始使用 Copilot NES,请启用 VS Code 设置 github.copilot.nextEditSuggestions.enabled

导航并接受编辑建议

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

边栏中的箭头指示是否有可用的编辑建议。箭头指示下一个编辑建议相对于你当前光标位置的位置。

你可以将鼠标悬停在箭头上以浏览编辑建议菜单,其中包括键盘快捷键和设置配置:

Copilot NES gutter menu expanded

重要

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

通过编辑建议减少干扰

默认情况下,编辑建议由边栏箭头指示,并且代码更改显示在编辑器中。启用 editor.inlineSuggest.edits.showCollapsed 设置,代码更改将仅在你按下 Tab 键导航到建议或将鼠标悬停在边栏箭头上时才显示在编辑器中。或者,将鼠标悬停在边栏箭头上,然后从菜单中选择 折叠显示 选项。

下一个编辑建议的用例

发现并纠正错误

  • Copilot 帮助处理简单的错误,如拼写错误。 它会建议修复缺失或交换字母的地方,例如 cont x = 5conts x = 5,而正确的应该是 const x = 5

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

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

    NES fixing a ternary logic mistake

    或者一个本应使用 && 而不是 || 的比较:

    NES fixing an if statement mistake

改变意图

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

    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 Snooze and Cancel Snooze buttons.

或者,在设置编辑器中修改 github.copilot.enable 设置。为你想要启用或禁用代码补全的每种语言添加一个条目。要为所有语言启用或禁用代码补全,请将 * 的值设置为 truefalse

要临时禁用编辑器中的所有代码补全,请选择状态栏中的 Copilot 菜单,然后选择 暂停 按钮,将暂停时间增加五分钟。要恢复代码补全,请在 Copilot 菜单中选择 取消暂停 按钮。

或者,在命令面板中使用 暂停内联建议取消暂停内联建议 命令。

更改用于补全的 AI 模型

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

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

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

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

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

注意

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

提示与技巧

上下文

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

设置

代码补全设置

下一个编辑建议设置

后续步骤