Skip to main content

在 IDE 中使用 GitHub Copilot Chat

在编辑器中使用 Copilot Chat 提供代码建议、解释代码、生成单元测试以及提供代码修复建议。

先决条件

如果可通过组织 或企业 访问 GitHub Copilot,则如果组织所有者 或企业管理员 禁用了聊天,你将无法使用 GitHub Copilot Chat。 请参阅“管理组织中的 Copilot 策略和功能”。

提交提示

可以要求 Copilot Chat 提供代码建议、解释代码、生成单元测试以及提供代码修复建议。

  1. 单击活动栏中的聊天图标或输入 Control+Command+i (Mac)/Ctrl+Alt+i (Windows/Linux),以打开聊天视图。

    活动栏中 Copilot Chat 图标的屏幕截图。

    Tip

    有关访问 Copilot Chat 的其他方法(包括与代码内联),请参阅下面的访问 Copilot Chat 的其他方法

  2. 在提示框中输入提示,或者单击其中一个建议的提示。 有关示例提示,请参阅下面的“示例提示”。

  3. 评估 Copilot 的回复,并根据需要发出后续请求。

    回复可能包含文本、代码块、按钮、图像、URI 和文件树。 回复通常包含交互式元素。 例如,回复可能包含用来插入代码块的菜单或者用来调用 Visual Studio Code 命令的按钮。

在提示中使用关键字

可以使用特殊关键字来帮助 Copilot 了解你的提示。

聊天参与者

使用聊天参与者将提示范围限定在特定域内。 要使用聊天参与者,请在聊天提示框中键入 @,然后再键入聊天参与者名称。 聊天参与者包括:

  • @workspace:在工作区中具有关于代码的上下文。 当希望 Copilot 考虑项目的结构、代码的不同部分如何进行互动或者项目中的设计模式时,请使用 @workspace。 请参阅“询问有关项目的问题”。

  • @vscode:具有有关 Visual Studio Code 命令和功能的上下文。 当需要有关 Visual Studio Code 的帮助时,请使用 @vscode。 请参阅“询问有关 Visual Studio Code 的问题”。

  • @terminal:具有有关 Visual Studio Code 终端 shell 及其内容的上下文。 当需要帮助创建或调试终端命令时,请使用 @terminal。 请参阅“询问有关命令行的问题”。

  • @github:允许使用 GitHub 特定的 Copilot 技能。 请参阅“对 Copilot 使用 GitHub 技能”。

要查看所有可用的聊天参与者,请在聊天提示框中键入 @。 另请参阅 Visual Studio Code 文档中的聊天参与者

斜杠命令

使用斜杠命令避免为常见场景编写复杂的提示。 要使用斜杠命令,请在聊天提示框中键入 /,然后键入命令。 斜杠命令包括:

  • /tests:为所选代码生成单元测试
  • /fix:为所选代码中的问题提供修复建议
  • /explain:解释所选代码
  • /clear:开始新聊天

要查看所有可用的斜杠命令,请在聊天提示框中键入 /。 另请参阅 Visual Studio Code 文档中的斜杠命令

聊天变量

使用聊天变量在提示中包含特定上下文。 要使用聊天变量,请在聊天提示框中键入 #,然后键入聊天变量。 聊天变量包括:

  • #file:在聊天中包含特定文件作为上下文。
  • #git:包含有关当前 Git 存储库的信息。
  • #terminalLastCommand:包含 Visual Studio Code 活动终端中上次运行的命令。

要查看所有可用的聊天变量,请在聊天提示框中键入 #。 另请参阅 Visual Studio Code 文档中的聊天变量

示例提示

可以向 Copilot Chat 询问有关项目的特定问题或常见软件问题。 还可以要求 Copilot Chat 编写代码、修复错误、编写测试和记录代码。

询问常见软件问题

可以向 Copilot Chat 询问常见软件问题。 例如:

  • tell me about nodejs web server frameworks
  • how to create an express app
  • @terminal how to update an npm package(使用 @terminal 聊天参与者

询问有关项目的问题

可以向 Copilot Chat 询问有关项目的问题。

  • what sorting algorithm does this function use
  • @workspace how are notifications scheduled
  • #file:gameReducer.js #file:gameInit.js how are these files related

要为 Copilot 提供正确的上下文,请尝试以下策略之一:

  • 突出显示相关代码行
  • 使用聊天变量,例如 #selection#file#editor#codebase#git
  • 使用 @workspace 聊天参与者

编写代码

可以要求 Copilot 为你编写代码。 例如:

  • write a function to sum all numbers in a list
  • add error handling to this function
  • @workspace add form validation, similar to the newsletter page

当 Copilot 返回代码块时,回复包含用来复制代码或者将代码插入到光标处、新文件或终端的选项。

设置新项目

使用 /new 斜杠命令设置新项目。 例如:

  • /new react app with typescript
  • /new python django web application
  • /new node.js express server

Copilot 将建议一个目录结构,并提供一个按钮用于创建建议的文件和内容。 要预览建议的文件,请在建议的目录结构中选择文件名称。

使用 /newNotebook 斜杠命令设置新的 Jupyter Notebook。 例如:

  • /newNotebook retrieve the titanic dataset and use Seaborn to plot the data

修复、改进和重构代码

如果活动文件包含错误,请使用 /fix 斜杠命令要求 Copilot 修复错误。

还可以提出常规请求来改进或重构代码。

  • how would you improve this code?
  • translate this code to C#
  • add error handling to this function

编写测试

使用 /tests 斜杠命令要求 Copilot 为活动文件或所选代码编写测试。 例如:

  • /tests
  • /tests using the Jest framework
  • /tests ensure the function rejects an empty list

/tests 斜杠命令将为现有代码编写测试。 如果希望在编写代码之前编写测试(测试驱动的开发),请省略 /tests 命令。 例如:

  • Add tests for a JavaScript function that should sum a list of integers

询问有关 Visual Studio Code 的问题

使用 @vscode 聊天参与者询问有关 Visual Studio Code 的特定问题。 例如:

  • @vscode tell me how to debug a node.js app
  • @vscode how do I change my Visual Studio Code colors
  • @vscode how can I change key bindings

询问有关命令行的问题

使用 @terminal 聊天参与者询问有关命令行的特定问题。 例如:

  • @terminal find the largest file in the src directory
  • @terminal #terminalLastCommand 解释上一个命令以及任何错误

对 Copilot 使用 GitHub 技能

注意:

  • 仅当具有 Copilot Enterprise 订阅时,此功能才可用。
  • @github 聊天参与者目前为 beta 版本,可能会更改。

Copilot 具有一系列 GitHub 特定的技能,可用于回答问题。 若要在 VS Code 中的 Copilot Chat 中访问这些技能,请在问题中包含 @github

向问题添加 @github 时,Copilot 会根据问题的内容动态选择适当的技能。 此外,还可以明确要求 Copilot Chat 使用某项特定技能。 可通过两种方式实现此目的:

  • 使用自然语言要求 Copilot Chat 使用技能。 例如: @github Search the web to find the latest GPT4 model from OpenAI.
  • 若要专门调用 Web 搜索,可以在问题中包含 #web 变量。 例如: @github #web What is the latest LTS of Node.js?

当前可用的技能

可以通过询问 Copilot 来生成当前可用的技能列表:@github What skills are available?

可在 VS Code 中的 Copilot Chat 中使用的技能包括下表中显示的技能。

技能说明默认情况下是否启用?示例问题
代码搜索Git 存储库默认分支中的自然语言代码搜索。 当想要了解代码中实现某些功能的位置或方式时,此技能非常有用。 注意:必须为存储库编制索引 - 请参阅“使用 GitHub Copilot Chat(GitHub.com 版)”。@github Where is the logic that controls the user session management, and how does it work?
路径搜索检索 Git 存储库默认分支中的某个具体文件。 当你在存储库中提供文件的确切路径时,此技能非常有用。@github What logic does user_auth.js encapsulate?
显示符号定义检索在 Git 存储库默认分支中定义具体代码(函数、类或结构)的代码行。 当你了解某个符号的确切名称并想要了解它时,这项技能非常有用。@github Write unit tests for the AuthUser method
知识库搜索告知 Copilot Chat 在知识库上下文中回答问题。 若要启动知识库搜索,请先输入 @github #kb输入 @github #kb,然后选择组织的风格指南知识库,然后询问:What is our coding convention for indentation?
Web 搜索使用必应搜索引擎搜索网页。 此技能可用于教“助手”了解最新事件、新的开发进度、趋势、技术或非常具体、详细或精细的主题。否(需要管理员批准 - 请参阅“启用 GitHub Copilot 企业版功能”)@github What are some recent articles about SAT tokens securing against vulnerabilities in Node?

询问有关知识库的问题

注意:仅当具有 Copilot Enterprise 订阅时,此功能才可用。

组织所有者可以创建知识库,将一个或多个存储库中的 Markdown 文档归为一组。 有关详细信息,请参阅“管理 Copilot 知识库”。

可以告知 Copilot 在知识库上下文中回答问题。

  1. 在 Copilot Chat 窗口底部的“向 Copilot 询问问题或键入“/”以输入命令”文本框,键入 @github #kb,然后按 Enter 以打开知识库选择器。
  2. 使用箭头键选取其中一个可用的知识库,然后按 Enter
  3. 在“向 Copilot 询问问题或键入“/”以输入命令”文本框中,继续输入问题消息,然后按 Enter
  4. Copilot Chat 将在聊天窗口中处理问题并提供答案,并引用知识库。

访问 Copilot Chat 的其他方法

除了通过聊天视图提交提示外,还可以通过其他方式提交:

  • 内联****:要直接在编辑器或集成终端中启动内联聊天,请输入 Command+i (Mac)/Ctrl+i (Windows/Linux)。
  • 快速聊天****:要打开快速聊天下拉列表,请输入 Shift+Command+i (Mac)/Shift+Ctrl+i (Windows/Linux)
  • 智能操作****:要通过上下文菜单提交提示,请在编辑器中右键单击鼠标,在出现的菜单中选择 Copilot****,然后选择其中一个操作。 还可以通过闪烁图标访问智能操作,该图标有时会在选择代码行时出现。

有关更多详细信息,请参阅 Visual Studio Code 文档中的内联聊天快速聊天聊天智能操作

分享反馈

要表明回复是否有用,请使用回复旁边显示的“拇指向上”和“拇指向下”图标。

要留下有关 GitHub Copilot Chat 扩展的反馈,请在 microsoft/vscode-copilot-release 存储库中发布一个问题。

延伸阅读

先决条件

如果可通过组织 或企业 访问 GitHub Copilot,则如果组织所有者 或企业管理员 禁用了聊天,你将无法使用 GitHub Copilot Chat。 请参阅“管理组织中的 Copilot 策略和功能”。

提交提示

可以要求 Copilot Chat 提供代码建议、解释代码、生成单元测试并建议代码修复。

  1. 在 Visual Studio 菜单栏中,单击“视图”,然后单击“GitHub Copilot Chat”

  2. 在 Copilot Chat 窗口中输入提示,然后按 Enter****。 有关示例提示,请参阅以下“示例提示”。

  3. 评估 Copilot 的响应,并根据需要提交跟进提示。

    响应通常包含交互式元素。 例如,响应可能包括用于复制、插入或预览代码块结果的按钮。

    要查看 Copilot Chat 用于生成响应的文件,请选择响应下方的“引用”**** 下拉列表。

在提示中使用关键字

可以使用特殊关键字来帮助 Copilot 了解你的提示。

斜杠命令

使用斜杠命令避免为常见场景编写复杂的提示。 要使用斜杠命令,请在聊天提示框中键入 /,然后键入命令。 斜杠命令包括:

  • /tests:为所选代码生成单元测试
  • /fix:为所选代码中的问题提供修复建议
  • /explain:解释所选代码
  • /optimize:分析和改进所选代码的运行时

要查看所有可用的 / 命令,请在聊天提示框中键入 /。 另请参阅 Visual Studio 文档中的 / 命令

参考

默认情况下,Copilot Chat 将引用已打开的文件或所选代码。 还可以使用 #,后跟文件名称或文件名称和行号,或者使用 solution 来引用特定文件、行或解决方案。 例如:

  • 引用特定文件:Where are the tests in #MyFile.cs?
  • 引用多个文件:How are these files related #MyFile.cs #MyFile2.cs
  • 引用文件中的特定行:Explain this function #MyFile.cs: 66-72?
  • 引用当前文件:Is there a delete method in this #solution

另请参阅 Visual Studio 文档中的 引用

示例提示

可以向 Copilot Chat 询问有关项目的特定问题或常见软件问题。 还可以要求 Copilot Chat 编写代码、修复错误、编写测试和记录代码。

询问常见软件问题

可以向 Copilot Chat 询问常见软件问题。 例如:

  • tell me about nodejs web server frameworks
  • how to create an express app
  • how to update an npm package

询问有关项目的问题

可以向 Copilot Chat 询问有关项目的问题。 要为 Copilot 提供正确的上下文,请尝试以下策略之一:

  • 突出显示相关代码行
  • 打开相关文件
  • 使用 #file 来告知 Copilot 引用特定文件
  • 使用 #solution 来告知 Copilot 引用活跃文件

例如:

  • what sorting algorithm does this function use
  • #file:gameReducer.js what happens when a new game is requested

编写代码

可以要求 Copilot 为你编写代码。 例如:

  • write a function to sum all numbers in a list
  • add error handling to this function

Copilot 返回代码块时,响应包括用于复制代码、将代码插入新文件或预览代码输出的选项。

修复、改进和重构代码

如果活动文件包含错误,请使用 /fix 斜杠命令要求 Copilot 修复错误。

还可以提出常规请求来改进或重构代码。

  • how would you improve this code?
  • translate this code to C#
  • add error handling to this function

编写测试

使用 /tests 斜杠命令要求 Copilot 为活动文件或所选代码编写测试。 例如:

  • /tests
  • /tests using the Jest framework
  • /tests ensure the function rejects an empty list

/tests 斜杠命令将为现有代码编写测试。 如果希望在编写代码之前编写测试(测试驱动的开发),请省略 /tests 命令。 例如:

  • Add tests for a JavaScript function that should sum a list of integers

使用适用于 Copilot 的 GitHub 技能(预览版)

注意:

  • 仅当具有 Copilot Enterprise 订阅时,此功能才可用。
  • @github 聊天参与者目前为预览版,仅支持 Visual Studio 2022 预览版 2 及更高版本。

Copilot 具有一系列 GitHub 特定的技能,可用于回答问题。 若要在 Visual Studio 中的 Copilot Chat 中访问这些技能,请在问题中包含 @github

向问题添加 @github 时,Copilot 会根据问题的内容动态选择适当的技能。 此外,还可以明确要求 Copilot Chat 使用某项特定技能。 例如: @github Search the web to find the latest GPT4 model from OpenAI.

当前可用的技能

可以通过询问 Copilot 来生成当前可用的技能列表:@github What skills are available?

可在 Visual Studio 中的 Copilot Chat 中使用的技能包括下表中显示的技能。

技能说明默认情况下是否启用?示例问题
代码搜索Git 存储库默认分支中的自然语言代码搜索。 当想要了解代码中实现某些功能的位置或方式时,此技能非常有用。 注意:必须为存储库编制索引 - 请参阅“使用 GitHub Copilot Chat(GitHub.com 版)”。@github Where is the logic that controls the user session management, and how does it work?
路径搜索检索 Git 存储库默认分支中的某个具体文件。 当你在存储库中提供文件的确切路径时,此技能非常有用。@github What logic does user_auth.js encapsulate?
显示符号定义检索在 Git 存储库默认分支中定义具体代码(函数、类或结构)的代码行。 当你了解某个符号的确切名称并想要了解它时,这项技能非常有用。@github Write unit tests for the AuthUser method
Web 搜索使用必应搜索引擎搜索网页。 此技能可用于教“助手”了解最新事件、新的开发进度、趋势、技术或非常具体、详细或精细的主题。否(需要管理员批准 - 请参阅“启用 GitHub Copilot 企业版功能”)@github What are some recent articles about SAT tokens securing against vulnerabilities in Node?

访问 Copilot Chat 的其他方法

除了通过聊天窗口提交提示外,还可以内联提交。 要启动内联聊天,请在编辑器窗口中右键单击鼠标,选择“询问 Copilot”****。

有关更多详细信息,请参阅 Visual Studio 文档中的在内联聊天视图中提问

分享反馈

若要共享有关 Copilot Chat 的反馈,可以使用 Visual Studio 中的“共享反馈”按钮。 有关为 Visual Studio 提供反馈的详细信息,请参阅 Visual Studio 反馈文档。

  1. 在 Visual Studio 窗口的右上角,单击“发送反馈”按钮。

    Visual Studio 中“共享反馈”按钮的屏幕截图。

  2. 选择最恰当地描述你的反馈的选项。

    • 若要报告 bug,请单击“报告问题”。
    • 若要请求功能,请单击“建议功能”。

延伸阅读

先决条件

  • 对 GitHub Copilot 的访问权限。 请参阅“关于 GitHub Copilot”。

  • 兼容的 JetBrains IDE****。 GitHub Copilot 与以下 IDE 兼容:

    • IntelliJ IDEA(旗舰版、社区版、教育版)
    • Android Studio
    • AppCode
    • CLion
    • Code With Me Guest
    • DataGrip
    • DataSpell
    • GoLand
    • JetBrains Client
    • MPS
    • PhpStorm
    • PyCharm(专业版、社区版、教育版)
    • Rider
    • RubyMine
    • RustRover
    • WebStorm

    请参阅 JetBrains IDE 工具查找器进行下载。

  • GitHub Copilot**** 插件。 请参阅 JetBrains Marketplace 中的 GitHub Copilot 插件。 有关安装说明,请参阅“在环境中安装 GitHub Copilot 扩展”。

  • 在 JetBrains IDE 中登录到 GitHub。 有关身份验证说明,请参阅“在环境中安装 GitHub Copilot 扩展”。

如果可通过组织 或企业 访问 GitHub Copilot,则如果组织所有者 或企业管理员 禁用了聊天,你将无法使用 GitHub Copilot Chat。 请参阅“管理组织中的 Copilot 策略和功能”。

提交提示

可以要求 Copilot Chat 提供代码建议、解释代码、生成单元测试并建议代码修复。

  1. 单击 JetBrains IDE 窗口右侧的 Copilot Chat **** 图标,打开 Copilot Chat 窗口。

    活动栏中 Copilot Chat 图标的屏幕截图。

  2. 在提示栏中输入提示。 有关示例提示,请参阅以下“示例提示”。

  3. 评估 Copilot 的响应,并根据需要提交跟进提示。

    响应通常包含交互式元素。 例如,响应可能包括用于复制或插入代码块的按钮。

    要查看 Copilot Chat 用于生成响应的文件,请选择响应下方的“引用”**** 下拉列表。

在提示中使用关键字

可以使用特殊关键字来帮助 Copilot 了解你的提示。

斜杠命令

使用斜杠命令避免为常见场景编写复杂的提示。 要使用斜杠命令,请在聊天提示框中键入 /,然后键入命令。 斜杠命令包括:

  • /tests:为所选代码生成单元测试
  • /fix:为所选代码中的问题提供修复建议
  • /explain:解释所选代码
  • /help:详细了解如何使用 Copilot Chat

要查看所有可用的 / 命令,请在聊天提示框中键入 /

文件引用

默认情况下,Copilot Chat 将引用已打开的文件或所选代码。 还可以通过将文件拖动到聊天提示框中来告知 Copilot Chat 要引用的文件。 或者,可以右键单击文件,选择“GitHub Copilot”,然后选择“在聊天中引用文件”

示例提示

可以向 Copilot Chat 询问有关项目的特定问题或常见软件问题。 还可以要求 Copilot Chat 编写代码、修复错误、编写测试和记录代码。

询问常见软件问题

可以向 Copilot Chat 询问常见软件问题。 例如:

  • tell me about nodejs web server frameworks
  • how to create an express app
  • how to update an npm package

询问有关项目的问题

可以向 Copilot Chat 询问有关项目的问题。 要为 Copilot 提供正确的上下文,请尝试以下策略之一:

  • 突出显示相关代码行。
  • 打开相关文件。
  • 添加文件作为引用。 请参阅文件引用

例如:

  • what sorting algorithm does this function use
  • how are these files related(引用相关文件)

编写代码

可以要求 Copilot 为你编写代码。 例如:

  • write a function to sum all numbers in a list
  • add error handling to this function

Copilot 返回代码块时,响应包括用于复制代码或在光标处插入代码的选项。

修复、改进和重构代码

如果活动文件包含错误,请使用 /fix 斜杠命令要求 Copilot 修复错误。

还可以提出常规请求来改进或重构代码。

  • how would you improve this code?
  • translate this code to C#
  • add error handling to this function

编写测试

使用 /tests 斜杠命令要求 Copilot 为活动文件或所选代码编写测试。 例如:

  • /tests
  • /tests using the Jest framework
  • /tests ensure the function rejects an empty list

/tests 斜杠命令将为现有代码编写测试。 如果希望在编写代码之前编写测试(测试驱动的开发),请省略 /tests 命令。 例如:

  • Add tests for a JavaScript function that should sum a list of integers

访问 Copilot Chat 的其他方法

除了通过聊天窗口提交提示外,还可以右键单击文件、选择“GitHub Copilot”****,然后选择其中一个选项来提交内置请求。

分享反馈

若要共享有关 Copilot Chat 的反馈,可以使用 JetBrains 中的共享反馈链接。

  1. 在 JetBrains IDE 窗口右侧,单击 Copilot Chat 图标以将 Copilot Chat 窗口打开。

    活动栏中 Copilot Chat 图标的屏幕截图。

  2. 在 Copilot Chat窗口顶部,单击“共享反馈”链接。

    Copilot Chat 窗口中共享反馈链接的屏幕截图。

其他阅读材料