先决条件
- 对 GitHub Copilot 的访问权限。 请参阅“关于 GitHub Copilot”。
- Visual Studio Code 的最新版本。 请参阅 Visual Studio Code 下载页面。
- GitHub Copilot 扩展 - 从 Visual Studio 市场中安装此扩展。 有关更多信息,请参阅 Microsoft 文档中的“在 Visual Studio Code 中设置 GitHub Copilot”。
- 在 Visual Studio Code 中登录到 GitHub。 如果遇到身份验证问题,请参阅“排查 IDE 中 GitHub Copilot Chat 的问题”。
如果可通过组织 或企业 访问 GitHub Copilot,则如果组织所有者 或企业管理员 禁用了聊天,你将无法使用 GitHub Copilot Chat。 请参阅“管理组织中的 Copilot 策略和功能”。
提交提示
可以要求 Copilot Chat 提供代码建议、解释代码、生成单元测试以及提供代码修复建议。
-
单击活动栏中的聊天图标或输入 Control+Command+i (Mac)/Ctrl+Alt+i (Windows/Linux),以打开聊天视图。
Tip
有关访问 Copilot Chat 的其他方法(包括与代码内联),请参阅下面的访问 Copilot Chat 的其他方法。
-
在提示框中输入提示,或者单击其中一个建议的提示。 有关示例提示,请参阅下面的“示例提示”。
-
评估 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 在知识库上下文中回答问题。
- 在 Copilot Chat 窗口底部的“向 Copilot 询问问题或键入“/”以输入命令”文本框,键入
@github #kb
,然后按 Enter 以打开知识库选择器。 - 使用箭头键选取其中一个可用的知识库,然后按 Enter。
- 在“向 Copilot 询问问题或键入“/”以输入命令”文本框中,继续输入问题消息,然后按 Enter。
- 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”。
- Visual Studio 2022 版本 17.8 或更高版本。 请参阅 Visual Studio 文档中的安装 Visual Studio。
- GitHub Copilot 扩展****。 请参阅 Visual Studio 文档中的在 Visual Studio 中安装 GitHub Copilot。
- GitHub Copilot Chat 扩展****。 请参阅 Visual Studio 文档中的在 Visual Studio 中安装 GitHub Copilot。
- 登录 Visual Studio 中的 GitHub Copilot****。 如果身份验证出现问题,请参阅“排查 IDE 中 GitHub Copilot Chat 的问题”。
如果可通过组织 或企业 访问 GitHub Copilot,则如果组织所有者 或企业管理员 禁用了聊天,你将无法使用 GitHub Copilot Chat。 请参阅“管理组织中的 Copilot 策略和功能”。
提交提示
可以要求 Copilot Chat 提供代码建议、解释代码、生成单元测试并建议代码修复。
-
在 Visual Studio 菜单栏中,单击“视图”,然后单击“GitHub Copilot Chat”。
-
在 Copilot Chat 窗口中输入提示,然后按 Enter****。 有关示例提示,请参阅以下“示例提示”。
-
评估 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 反馈文档。
-
在 Visual Studio 窗口的右上角,单击“发送反馈”按钮。
-
选择最恰当地描述你的反馈的选项。
- 若要报告 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 提供代码建议、解释代码、生成单元测试并建议代码修复。
-
单击 JetBrains IDE 窗口右侧的 Copilot Chat **** 图标,打开 Copilot Chat 窗口。
-
在提示栏中输入提示。 有关示例提示,请参阅以下“示例提示”。
-
评估 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 中的共享反馈链接。
-
在 JetBrains IDE 窗口右侧,单击 Copilot Chat 图标以将 Copilot Chat 窗口打开。
-
在 Copilot Chat窗口顶部,单击“共享反馈”链接。