Skip to main content

在 IDE 中向 GitHub Copilot 提问

在编辑器中使用 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. 在提示框中输入提示,或者单击其中一个建议的提示。 有关示例提示,请参阅“Copilot 聊天的示例提示”。

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

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

在提示中使用关键字

可以使用特殊关键字来帮助 Copilot 了解你的提示。 有关示例,请参阅“Copilot 聊天的示例提示”。

聊天参与者

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

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

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

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

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

除了内置 Visual Studio Code 聊天参与者之外,还可以安装提供聊天参与者的 Copilot Extensions。 可以从 GitHub MarketplaceVisual Studio Code Marketplace 中安装这些扩展。 有关提供聊天参与者的 GitHub Marketplace 的扩展的信息,请参阅“使用扩展将外部工具与 Copilot Chat 集成”。

Note

GitHub Copilot Extensions 目前为有限公开 beta 版本,可能随时发生更改。 若要请求访问 Copilot Extensions,请加入候补名单

要查看所有可用的聊天参与者,请在聊天提示框中键入 @

另请参阅 Visual Studio Code 文档中的聊天参与者

斜杠命令

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

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

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

聊天变量

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

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

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

对 Copilot 使用 GitHub 技能

Note

  • 仅当具有 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 存储库默认分支中的自然语言代码搜索。 当想要了解代码中实现某些功能的位置或方式时,此技能非常有用。 注意:必须为存储库编制索引 - 请参阅“Indexing repositories for Copilot Chat”。@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 搜索使用必应搜索引擎搜索网页。 此技能可用于教“助手”了解最新事件、新的开发进度、趋势、技术或非常具体、详细或精细的主题。否(需要管理员批准 - 请参阅“管理企业中 Copilot 的策略和功能”)@github What are some recent articles about SAT tokens securing against vulnerabilities in Node?

询问有关知识库的问题

Note

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

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

可以告知 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****。 有关示例提示,请参阅“Copilot 聊天的示例提示”。

  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 的 GitHub 技能(预览版)

Note

  • 仅当具有 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 存储库默认分支中的自然语言代码搜索。 当想要了解代码中实现某些功能的位置或方式时,此技能非常有用。 注意:必须为存储库编制索引 - 请参阅“Indexing repositories for Copilot Chat”。@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 搜索使用必应搜索引擎搜索网页。 此技能可用于教“助手”了解最新事件、新的开发进度、趋势、技术或非常具体、详细或精细的主题。否(需要管理员批准 - 请参阅“管理企业中 Copilot 的策略和功能”)@github What are some recent articles about SAT tokens securing against vulnerabilities in Node?
知识库搜索告知 Copilot Chat 在知识库上下文中回答问题。 若要启动知识库搜索,请先输入@github,再按 #,然后选择知识库。输入 @github #,然后选择组织的风格指南知识库,然后询问:What is our coding convention for indentation?

询问有关知识库的问题(预览版)

Note

  • 仅当具有 Copilot Enterprise 订阅时,此功能才可用。
  • 知识库支持目前为预览版,并且仅 Visual Studio 2022 预览版 3 及更高版本中可用。

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

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

  1. 在 Copilot Chat 窗口底部的“询问 Copilot:键入 / 以执行命令,键入 # 以进行参考”文本框中,键入 @github,然后按 #,随后从列表中选择知识库。****
  2. 在“键入 / 以执行命令,键入 # 以进行参考”文本框中,继续发送问题消息,然后按 Enter。********
  3. Copilot Chat 将在聊天窗口中处理问题并提供答案,并引用知识库。

访问 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. 在提示栏中输入提示。 有关示例提示,请参阅“Copilot 聊天的示例提示”。

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

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

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

在提示中使用关键字

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

斜杠命令

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

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

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

文件引用

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

访问 Copilot Chat 的其他方法

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

分享反馈

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

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

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

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

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

其他阅读材料