如何使用 GitHub Copilot 辅助编程:屏幕阅读器用户指南
GitHub Copilot功能介绍与使用说明
功能概览
- 代码补全:在编辑器中写代码或注释的过程中,Copilot自动推测接下来会写的内容。
- 聊天模式:使用自然语言向Copilot询问问题,解释代码或请求代码建议等。可根据不同场景选用以下形式被访问:
- 内联聊天:直接从编辑器或终端启动内联聊天对话,在当前位置获取代码建议,因此只会提出对当前文件的代码修改意见。
- 询问模式:打开持久的聊天视图,帮助回答您的问题并提供代码建议。
- 编辑模式:使用自然语言来编辑代码。选择要编辑的文件,提供相关上下文和提示,Copilot 将建议代码编辑自动将代码更改应用到工作区的多个文件中。
- 代理模式:让 Copilot 自主规划执行请求所需的任务和相关文件。Copilot 将应用代码编辑并建议终端命令,并将不断迭代以解决出现的任何问题。
代码补全
GitHub Copilot会在输入代码时提供代码建议,您可以接受,或继续输入并忽略建议。您可以使用代码注释来提示您期待的代码。
代码的建议通常会自动生成,一声音效提示后,屏幕阅读器会朗读出建议。
- 接受建议:Tab。
- 忽视建议:Esc 或继续键入代码。
聊天模式
使用聊天模式,您可以通过聊天提问来获取代码建议、提高代码理解能力,甚至配置VS Code。无需在文档或在线论坛中搜索答案,直接在 VS Code 中询问 Copilot 并立即将建议应用于您的代码库。
使用方式
-
打开聊天视图
- 聊天视图:Ctrl+Alt+I。
- 若非询问模式,则选择模式:Ctrl+.切换模式;或者打开命令面板,输入“设置聊天模式”后按回车;或者Tab到模式选择器,使用Up或Down键选择。
- 内联聊天:Ctrl+I
- 打开后按Alt+F1,可获取功能的辅助功能指南。
其中,内联聊天发生在代码编辑器或终端中,使用你熟悉的文本选择命令,例如Shift+上下左右箭头,在编辑器中选中代码块,进行关于该代码片段的聊天。
- 聊天视图:Ctrl+Alt+I。
-
添加上下文: 参见聊天上下文章节。
-
输入提示词
一些提示词示例:- 询问有关编码和技术概念的问题(“什么是链表?”、“前 10 个流行的 Web 框架”)
- 集思广益,讨论如何最好地解决编码问题(“如何为我的项目添加身份验证?)
- 解释一段代码 ( “这段代码启什么作用?”)
- 建议代码修复 ( “此方法发生FileNotFoundException错误”)
- 生成单元测试用例或代码文档(“请你帮我给这份文件写一个测试用例”)
-
查看回复
-
询问模式:
- 聚焦到聊天列表的最后一次请求或回复:Ctrl+UpArrow。此后,可以通过UpArrow或DownArrow在不同的请求和回复中导航。
- 聚焦到聊天输入框:Ctrl+DownArrow。
- 聚焦到回复中的上或下一个代码块,Ctrl+Alt+PageUp或PageDown
- 聚焦到代码块对应的工具栏:聚焦代码块时,按Tab可以定位到工具栏,使用RightArrow或LeftArrow浏览代码块的应用操作, 包括:
- 将代码块在编辑器中应用,会自动选择需插入的位置,并开启代码审核流程。
- 在当前光标位置插入代码块(Ctrl+Enter),直接插入到光标位置。
- 将代码块复制到剪贴板。
- 将代码块插入终端(Ctrl+Alt+Enter)。
- 将代码块插入到新文件中。
- 可访问视图查看最后一次回复:在输入框中,按Alt+F2。
- 也可以切换屏幕阅读器到浏览模式,以浏览网站的形式来浏览消息(例如,按H在标题之间跳转)。
-
内联聊天:
- 仅含代码变更,变更差异将在差异视图中展示。
- 接受变化:Ctrl+Enter。
- 不满意:可以输入新的命令或按Esc退出。
- 否则,查看同询问模式。
- 仅含代码变更,变更差异将在差异视图中展示。
-
-
可选,询问后续问题以获取更完善的答案。
编辑模式 及 代理模式
在编辑模式下,您可以提供希望 Copilot 处理的相关上下文和文件。Copilot 将根据您的提示建议代码编辑,您可以通过提供后续提示手动迭代代码更改。
在代理模式下,Copilot 会自主确定相关上下文和文件,确定需要执行哪些任务,并提供代码更改和终端命令来完成请求。随后,它会独立迭代以实现预期结果,并在问题出现时进行修复。代理模式使用一组工具来执行特定任务,例如编辑文件、运行和监控终端命令等。这些工具可以并行运行以完成请求的任务。
编辑模式
- 打开视图
- 首先打开聊天视图:Ctrl+Alt+I
- 选择模式:Ctrl+.切换模式;或者打开命令面板,输入“设置聊天模式”后按回车;或者Tab到模式选择器,使用Up或Down键选择。
- 打开后按Alt+F1,可获取功能的辅助功能指南。
- 添加上下文: 参见聊天上下文章节。
- 输入提示词以请求代码编辑
- 审查回复:审查建议的编辑并接受或放弃建议的编辑。
- 继续优化:继续询问后续问题并迭代 Copilot 提供的代码更改。
代理模式
- 打开视图
- 首先打开聊天视图:Ctrl+Alt+I
- 选择模式:按Ctrl+.切换模式;或者打开命令面板,输入“设置聊天模式”后按回车;或者Tab到模式选择器,使用Up或Down键选择。
- 打开后按Alt+F1,可获取功能的辅助功能指南。
- 输入提示词以请求代码编辑。您无需指定要处理哪些文件。在代理模式下,Copilot会自主确定要编辑的相关上下文和文件。
- 审查回复:查看建议的代码编辑并确认 Copilot 是否可以运行建议的终端命令。
- 自动迭代:Copilot检测代码编辑和终端命令中的问题,并将迭代并执行其他操作来解决它们。例如,代理模式可能会在代码编辑后运行单元测试。如果测试失败,Copilot 会使用测试结果来解决问题。
- 继续优化:继续询问后续问题并迭代 Copilot 提供的代码更改。
审查回复
在编辑模式,代理模式或聊天模式将代码块在编辑器中应用后,Copilot会自动将代码变更应用到代码后,并提供了一个代码审查流程,您可以接受或拒绝每个由 AI 生成的编辑。Copilot 在已更改文件列表中列出了已编辑的文件(可以通过Shift+Tab访问到)。
-
在Copilot面板
- 接受所有编辑(并执行命令):Ctrl+Enter。
- 拒绝所有编辑:Ctrl+Backspace。
- 聚焦到聊天列表的最后一次请求或回复:Ctrl+UpArrow。UpArrow或DownArrow在不同的请求和回复中导航。
- 聚焦到聊天输入框:Ctrl+DownArrow。
- 可访问视图查看最后一次回复:在输入框中,按Alt+F2。
-
在编辑器
- (跨文件)导航到下一个或上一个编辑:Alt+F5 或 Shift+Alt+F5。
- 打开/关闭差异视图:F7 或 Esc打开或者关闭差异视图,观察代码的变更。
- 接受一个编辑:Ctrl+Shift+Enter
- 拒绝一个编辑:Ctrl+Shift+Backspace
撤销与重做
当您发送请求以对代码进行编辑时,若您希望回滚其中一些更改。您可以使用聊天视图标题栏中的撤消上一个请求
控件来还原上次编辑并返回到发送上次请求之前的状态。撤消上次编辑后,可以使用聊天视图标题栏中的 重做上一个请求
控件再次重做这些编辑。
聊天上下文
向 Copilot 聊天提示添加上下文,可以帮助 Copilot 为您提供最佳、最相关的答案。
上下文的类型
Copilot 支持不同类型的上下文,包括:
- 选中的代码块,文件,文件夹:在提示中包含选中的代码块,文件或文件夹内的所有文件。
- 代码库(Codebase):选择Codebase,Copilot 会自动从您的代码库中查找正确的文件,而不是手动添加单个文件。
- 符号 (Symbols) :将工作区代码中的标识符,如函数、变量、类、方法、接口、枚举添加到提示中。
- 终端命令输出 (Terminal Last Command) : 在提示中包含最后一次运行的终端命令的输出结果。
- 终端选择(Terminal Selection):在提示中包终端中选中的文字。
- 问题 (Problems): 在提示中包含“问题”面板中的特定代码问题。
- 测试失败 (Test failures) : 在提示中包含测试失败的详细信息。
添加的方式
上下文可以通过以下方式添加:
- 当前文件:默认代码编辑器窗口正打开的文件会被添加为上下文(可关闭)。
- 如果在编辑器中选择了代码块,则仅将该选择添加为上下文。选择代码片段可以使用你熟悉的文本选择命令,例如Shift+上下左右箭头。
- 关闭,可以在聚焦到输入后,通过Tab找到对应文件,再Tab一次找到禁用按钮(Disable current file context)
- 添加上下文:Ctrl+/ 选择加入更多的上下文。可以上下箭头在列表中寻找想添加的上下文,之后使用右键加入上下文,或直接键入对应的文件名或上下文名字。
- 后续你也可以通过Tab找到加入的上下文的删除按钮进行删除。
- 变量: 键入#在输入的提示词中插入下上文,通过上下箭头在列表中查找或直接键入。例如,
#terminalLastCommand
表示在提示中包含最后一次运行的终端命令的输出结果。#file: filename
表示在提示中包含文件的内容。#codebase
表示在提示中包含代码库的内容,Copilot会自动从代码库中找到正确的文件。
自动找到正确的文件
您无需手动添加单个文件,而是可以让 Copilot 自动从代码库中找到正确的文件。当您不知道哪些文件与您的问题相关时,这会很有用。
为了让 Copilot 自动找到正确的文件,请在提示中添加#codebase
或从上下文类型列表中选择Codebase。
确保启用 github.copilot.chat.codesearch.enabled
设置以获得最佳结果。
其他
切换模型
Ctrl+Alt+. 在输入框,通过
通过命令面板使用
- F1(或者 Ctrl+Shift+P) 打开命令面板。
- 输入“GitHub Copilot”或“Chat”后,通过上下方向键可以浏览一些列操作。
- 选择操作,按Enter即可执行。
- 按Esc可以退出命令面板。
- 为了更快的访问,可以导航到File > Preferences > Keyboard Shortcuts,绑定喜欢的操作到喜欢的按键组合。