VS Code 中的 GitHub Copilot 速查表
Visual Studio Code 中的 GitHub Copilot 提供 AI 驱动的功能,帮助您更快、更轻松地编写代码。本速查表简要概述了 Visual Studio Code 中 GitHub Copilot 的功能。
如果你还没有 Copilot 订阅,可以通过注册 Copilot 免费计划 免费使用 Copilot,并获得每月限量的补全和聊天交互次数。
基本键盘快捷键
- ⌃⌘I (Windows、Linux 为 Ctrl+Alt+I) - 打开聊天视图
- ⌘I (Windows、Linux 为 Ctrl+I) - 在聊天视图中输入语音聊天提示
- ⌘N (Windows、Linux 为 Ctrl+N) - 在聊天视图中开始新的聊天会话
- ⇧⌘I (Windows 为 Ctrl+Shift+I, Linux 为 Ctrl+Shift+Alt+I) - 切换到代理模式
- ⌘I (Windows、Linux 为 Ctrl+I) - 在编辑器或终端中开始行内聊天
- ⌘I (Windows、Linux 为 Ctrl+I) (按住) - 开始行内语音聊天
- Tab - 接受行内建议或导航到下一个编辑建议
- Escape - 忽略行内建议
在 VS Code 中访问 AI
-
使用自然语言开始聊天对话
- 聊天视图 (⌃⌘I (Windows、Linux 为 Ctrl+Alt+I)):在辅助侧边栏中保持持续的聊天对话
- 在编辑器或终端中进行行内聊天 (⌘I (Windows、Linux 为 Ctrl+I)):在工作流程中提问
- 快速聊天 (⇧⌥⌘L (Windows、Linux 为 Ctrl+Shift+Alt+L)):快速提问,不离开当前任务
-
编辑器中的 AI
- 代码补全:在您输入时获取建议,按 Tab 接受建议
- 编辑上下文菜单操作:访问常见的 AI 操作,如解释或修复代码、生成测试或审查选定的文本
- 代码操作:获取编辑器代码操作(灯泡图标)以修复 linting 和编译器错误
-
整个 VS Code 中的特定任务智能操作
- 生成提交消息和拉取请求的标题与描述
- 修复测试错误
- 语义化文件搜索建议
VS Code 中的聊天体验
开始自然语言聊天对话以获取编码任务的帮助。例如,请求解释代码块或编程概念、重构一段代码或实现新功能。获取更多关于使用 Copilot Chat 的信息。
操作 | 描述 |
---|---|
⌃⌘I (Windows、Linux 为 Ctrl+Alt+I) | 在辅助侧边栏中打开聊天视图。 |
⌘I (Windows、Linux 为 Ctrl+I) | 开始行内聊天,在编辑器或终端中打开聊天。 |
⇧⌥⌘L (Windows、Linux 为 Ctrl+Shift+Alt+L) | 打开快速聊天,不中断您的工作流程。 |
⌘N (Windows、Linux 为 Ctrl+N) | 在聊天视图中开始新的聊天会话。 |
在聊天视图中切换不同的聊天模式。 | |
⌥⌘. (Windows、Linux 为 Ctrl+Alt+.) | 显示模型选择器以为聊天选择不同的 AI 模型。 |
添加上下文... |
将不同类型的上下文附加到您的聊天提示。 |
/ -命令 |
使用斜杠命令执行常见任务或调用可重用的聊天提示。 |
# -提及 |
引用常用工具或聊天变量以在您的提示中提供上下文。 |
@ -提及 |
引用聊天参与者来处理特定领域请求。 |
编辑 () | 编辑之前的聊天提示并撤销更改。 |
历史记录 () | 访问您的聊天会话历史记录。 |
语音 () | 通过语音(语音聊天)输入聊天提示。聊天响应会被朗读出来。 |
KaTeX | 在聊天响应中渲染数学方程式。通过 chat.math.enabled 启用。 |
提示
- 使用
#
-提及为您的聊天提示添加更多上下文。- 使用
/
命令和@
参与者以获得更精确和相关的答案。- 具体、简洁,并提出后续问题以获得最佳结果。
- 选择适合您需求的聊天模式:提问、编辑、代理或创建自定义模式。
为您的提示添加上下文
通过为您的聊天提示提供上下文来获得更相关的响应。从不同类型的上下文中选择,例如文件、符号、编辑器选择、源代码管理提交、测试失败等。
操作 | 描述 |
---|---|
添加上下文 | 打开快速选择器为您的聊天提示选择相关上下文。从不同类型的上下文中选择,例如工作区文件、符号、当前编辑器选择、终端选择等。 |
拖放文件 | 从资源管理器或搜索视图中拖放文件,或将编辑器选项卡拖到聊天视图上。 |
拖放文件夹 | 将文件夹拖放到聊天视图上以附加其中的文件。 |
拖放问题 | 从问题面板中拖放一项。 |
#<文件|文件夹|符号> |
输入 # ,后跟文件名、文件夹名或符号名,将其添加为聊天上下文。 |
`#-提及 | 输入 # ,后跟一个聊天工具以添加特定的上下文类型或工具。 |
聊天工具
在处理用户请求时,在聊天中使用工具来完成专门的任务。这些任务的例子包括列出目录中的文件、编辑工作区中的文件、运行终端命令、获取终端输出等。可以选择内置工具或来自 MCP 服务器和扩展的工具。
下表列出了 VS Code 内置的工具
聊天变量/工具 | 描述 |
---|---|
#changes |
源代码管理变更列表。 |
#codebase |
在当前工作区中执行代码搜索,自动为聊天提示找到相关上下文。 |
#createAndRunTask |
在工作区中创建并运行新的任务。 |
#createDirectory |
在工作区中创建一个新目录。 |
#createFile |
在工作区中创建一个新文件。 |
#edit (工具集) |
允许在工作区中进行修改。 |
#editFiles |
对工作区中的文件应用编辑。 |
#editNotebook |
对笔记本进行编辑。 |
#extensions |
搜索并询问有关 VS Code 扩展的问题。例如,“如何开始使用 Python #extensions?” |
#fetch |
从给定的网页获取内容。例如,“总结 #fetch code.visualstudio.com/updates。” |
#fileSearch |
使用 glob 模式在工作区中搜索文件并返回其路径。 |
#findTestFiles |
在工作区中定位测试文件。 |
#getNotebookSummary |
获取笔记本单元格及其详细信息的列表。 |
#getProjectSetupInfo |
为搭建不同类型的项目提供指令和配置。 |
#getTaskOutput |
获取在工作区中运行任务的输出。 |
#getTerminalOutput |
获取在工作区中运行终端命令的输出。 |
#githubRepo |
在 GitHub 仓库中执行代码搜索。例如,“什么是全局代码片段 #githubRepo microsoft/vscode。” |
#installExtension |
安装 VS Code 扩展。 |
#listDirectory |
列出工作区中目录的文件。 |
#new |
搭建一个新的 VS Code 工作区,预配置了调试和运行配置。 |
#newJupyterNotebook |
根据描述搭建一个新的 Jupyter 笔记本。 |
#newWorkspace |
创建一个新工作区。 |
#openSimpleBrowser |
打开内置的简单浏览器并预览本地部署的 Web 应用。 |
#problems |
将问题面板中的工作区问题添加为上下文。在修复代码或调试时很有用。 |
#readFile |
读取工作区中文件的内容。 |
#readNotebookCellOutput |
读取笔记本单元格执行的输出。 |
#runCell |
运行一个笔记本单元格。 |
#runCommands (工具集) |
允许在终端中运行命令并读取输出。 |
#runInTerminal |
在集成终端中运行 shell 命令。 |
#runNotebooks (工具集) |
允许运行笔记本单元格。 |
#runTask |
在工作区中运行现有的任务。 |
#runTasks (工具集) |
允许在工作区中运行任务并读取输出。 |
#runTests |
在工作区中运行单元测试。 |
#runVscodeCommand |
运行 VS Code 命令。例如,“启用禅模式 #runVscodeCommand。” |
#search (工具集) |
允许在当前工作区中搜索文件。 |
#searchResults |
从搜索视图获取搜索结果。 |
#selection |
获取当前编辑器的选择内容(仅在有文本被选中时可用)。 |
#terminalLastCommand |
获取最后运行的终端命令及其输出。 |
#terminalSelection |
获取当前终端的选择内容。 |
#testFailure |
获取单元测试失败信息。在运行和诊断测试时很有用。 |
#textSearch |
在文件中查找文本。 |
#todos |
在处理聊天请求时管理和跟踪待办事项(需要启用 chat.todoListTool.enabled)。 |
#usages |
“查找所有引用”、“查找实现”和“转到定义”的组合。 |
#VSCodeAPI |
询问有关 VS Code 功能和扩展开发的问题。 |
斜杠命令
斜杠命令是聊天中特定功能的快捷方式。您可以使用它们快速执行操作,如修复问题、生成测试或解释代码。
斜杠命令 | 描述 |
---|---|
/docs |
在编辑器行内聊天中生成代码文档注释。 |
/explain |
解释代码块、文件或编程概念。 |
/fix |
请求 Copilot 修复代码块或解决编译器或 linting 错误。 |
/help |
获取有关在 VS Code 中使用聊天的帮助。 |
/tests |
为编辑器中的全部或仅选定的方法和函数生成测试。 |
/setupTests |
获取设置代码测试框架的帮助。获取相关测试框架的建议、设置和配置步骤以及 VS Code 测试扩展的建议。 |
/clear |
在聊天视图中开始新的聊天会话。 |
/new |
搭建一个新的 VS Code 工作区或文件。使用自然语言描述您需要的项目/文件类型,并在创建前预览搭建的内容。 |
/newNotebook |
根据您的要求搭建一个新的 Jupyter 笔记本。使用自然语言描述笔记本应包含的内容。 |
/search |
为搜索视图生成搜索查询。使用自然语言描述您想要搜索的内容。 |
/startDebugging |
生成一个 launch.json 调试配置文件并从聊天视图开始调试会话。 |
/<提示文件名> |
在聊天中运行可重用的提示文件。 |
聊天参与者
使用聊天参与者处理聊天中的特定领域请求。聊天参与者以 @
为前缀,可用于询问特定主题的问题。VS Code 提供了内置的聊天参与者,如 @github
、@terminal
和 @vscode
,扩展可以提供额外的参与者。
聊天参与者 | 描述 |
---|---|
@github |
使用 @github 参与者询问有关 GitHub 仓库、问题、拉取请求等问题。获取更多关于可用的 GitHub 技能的信息。示例: @github 分配给我的所有开放 PR 是什么? , @github 显示 @dancing-mona 最近合并的 PR |
@terminal |
使用 @terminal 参与者询问有关集成终端或 shell 命令的问题。示例: @terminal 列出此工作区中最大的 5 个文件 |
@vscode |
使用 @vscode 参与者询问有关 VS Code 功能、设置和 VS Code 扩展 API 的问题。示例: @vscode 如何启用自动换行? |
@workspace |
使用 @workspace 参与者询问有关当前工作区的问题。示例: @workspace 身份验证是如何实现的? |
代理模式
通过聊天代理模式,您可以使用自然语言指定一个高级任务,让 AI 自主地对请求进行推理,规划所需的工作,并将更改应用到您的代码库中。代理模式结合使用代码编辑和工具调用来完成您指定的任务。在处理您的请求时,它会监控编辑和工具的结果,并迭代解决出现的任何问题。
操作 | 描述 |
---|---|
⇧⌘I (Windows 为 Ctrl+Shift+I, Linux 为 Ctrl+Shift+Alt+I) | 在聊天视图中切换到代理模式 |
工具 () | 配置代理模式下可用的工具。从内置工具、MCP 服务器和扩展提供的工具中选择。 |
自动批准工具 (实验性) | 在代理模式下启用所有工具的自动批准 (chat.tools.autoApprove)。 |
自动批准终端命令 (实验性) | 在代理模式下启用终端命令的自动批准 (chat.tools.terminal.autoApprove)。 |
MCP | 配置 MCP 服务器,用额外的功能和工具扩展代理模式。 |
提示
- 向代理模式添加额外的工具以扩展其功能。
- 配置自定义聊天模式以定义代理模式的运行方式,例如实现一个只读的规划模式。
- 定义自定义指令以指导代理模式如何生成和结构化代码。
自定义您的聊天体验
自定义您的聊天体验以生成符合您的编码风格、工具和开发工作流程的响应。在 VS Code 中有几种方法可以自定义您的聊天体验
-
自定义指令:为生成代码、执行代码审查或生成提交消息等任务定义通用准则或规则。自定义指令描述了 AI 应在何种条件下操作(如何完成任务)。
-
可重用提示文件:为生成代码或执行代码审查等常见任务定义可重用的提示。提示文件是独立的提示,您可以直接在聊天中运行。它们描述了要执行的任务(什么应该被完成)。
-
聊天模式:定义聊天的运行方式、可使用的工具以及与代码库的交互方式。每个聊天提示都在聊天模式的范围内运行,无需为每个请求配置工具和指令。
提示
- 定义特定于语言的指令,以获得每种语言更准确的生成代码。
- 将您的指令存储在工作区中,以便轻松与团队共享。
- 为常见任务定义可重用的提示文件,以节省时间并帮助团队成员快速上手。
编辑器 AI 功能
当您在编辑器中编码时,可以使用 Copilot 在您输入时生成代码补全。调用行内聊天来提问并从 Copilot 获得帮助,同时保持在编码流程中。例如,请求 Copilot 为函数或方法生成单元测试。获取有关代码补全和行内聊天的更多信息。
操作 | 描述 |
---|---|
代码补全 | 在编辑器中开始输入,即可获得符合您的编码风格并考虑您现有代码的代码建议。 |
代码注释 | 通过在代码注释中编写指令来提供代码补全提示。 示例: # 编写一个计算器类,包含加、减、乘方法。使用静态方法。 |
⌘I (Windows、Linux 为 Ctrl+I) | 开始编辑器行内聊天,直接从编辑器发送聊天请求。使用自然语言并引用聊天变量和斜杠命令来提供上下文。 |
F2 | 在重命名代码中的符号时获得 AI 驱动的建议。 |
上下文菜单操作 | 使用编辑器上下文菜单访问常见的 AI 操作,例如解释代码、生成测试、审查代码等。在编辑器中右键单击以打开上下文菜单并选择生成代码。 |
代码操作(灯泡) | 在编辑器中选择代码操作(灯泡图标)以修复代码中的 linting 或编译器错误。 |
提示
- 使用有意义的方法或函数名,以更快地获得更好的代码补全。
- 选择一个代码块来限定您的行内聊天提示范围,或通过附加文件或符号来附加相关上下文。
- 使用编辑器上下文菜单选项直接从编辑器访问常见的 AI 驱动操作。
源代码管理和问题
使用 AI 分析您的提交和拉取请求中的更改,并为提交消息和拉取请求描述提供建议。
操作 | 描述 |
---|---|
#changes |
将当前的源代码管理更改作为上下文添加到您的聊天提示中。 |
提交作为上下文 | 将源代码管理历史记录中的一次提交作为上下文添加到您的聊天提示中。 |
提交消息 | 为源代码管理提交中的当前更改生成提交消息。 |
拉取请求描述 | 生成与您的拉取请求中的更改相对应的拉取请求标题和描述。 |
@github |
在聊天中使用 @github 参与者来询问有关您仓库中的问题、拉取请求等。获取更多关于可用的 GitHub 技能的信息。示例: @github 分配给我的所有开放 PR 是什么? , @github 显示 @dancing-mona 最近合并的 PR |
审查代码(实验性)
使用 AI 对代码块进行快速审查,或对工作区中未提交的更改进行审查。审查反馈会以注释的形式显示在编辑器中,您可以在其中应用建议。
操作 | 描述 |
---|---|
审查选定内容 (预览) | 选择一个代码块,然后从编辑器上下文菜单中选择生成代码 > 审查以进行快速审查。 |
代码审查 | 在源代码管理视图中选择代码审查按钮,对所有未提交的更改进行更深入的审查。 |
搜索和设置
在搜索视图中获取语义相关的搜索结果,或在设置编辑器中帮助搜索设置。
操作 | 描述 |
---|---|
设置搜索 | 在设置编辑器中包含语义搜索结果 (workbench.settings.showAISearchToggle)。 |
语义搜索 (预览) | 在搜索视图中包含语义搜索结果 (search.searchView.semanticSearchBehavior)。 |
生成测试
Copilot 可以为您的代码库中的函数和方法生成测试。获取更多关于聊天中的斜杠命令的信息。
操作 | 描述 |
---|---|
/tests |
为编辑器中的全部或仅选定的方法和函数生成测试。生成的测试会附加到现有的测试文件中,或者会创建一个新的测试文件。 |
/setupTests |
获取设置代码测试框架的帮助。获取相关测试框架的建议、设置和配置步骤以及 VS Code 测试扩展的建议。 |
/fixTestFailure |
向 Copilot 请求有关如何修复失败测试的建议。 |
测试覆盖率 (实验性) | 为尚未被测试覆盖的函数和方法生成测试。获取更多信息。 |
提示
- 提供有关要使用的测试框架或库的详细信息。
调试和修复问题
使用 Copilot 帮助修复编码问题,并获得在 VS Code 中配置和启动调试会话的帮助。
操作 | 描述 |
---|---|
/fix |
向 Copilot 请求有关如何修复代码块或如何解决代码中任何编译器或 linting 错误的建议。例如,帮助修复未解析的 Node.js 包名。 |
/fixTestFailure |
向 Copilot 请求有关如何修复失败测试的建议。 |
/startDebugging (实验性) |
生成一个 launch.json 调试配置文件并从聊天视图开始调试会话。 |
copilot-debug 命令 |
帮助您调试程序的终端命令。在运行命令前加上前缀,为其启动调试会话(例如,copilot-debug python foo.py )。 |
提示
- 提供有关您需要的修复类型的附加信息,例如优化内存消耗或性能。
- 注意编辑器中的 Copilot 代码操作,它们会提示修复代码中问题的建议。
搭建新项目
Copilot 可以通过生成项目结构的脚手架,或根据您的要求生成笔记本,来帮助您创建新项目。
操作 | 描述 |
---|---|
代理模式 | 使用代理模式并使用自然语言提示来创建新项目或文件。例如,创建一个 svelte 网页应用程序来跟踪我的任务 。 |
/new |
在聊天视图中使用 /new 命令来搭建新项目或新文件。使用自然语言描述您需要的项目/文件类型,并在创建前预览搭建的内容。示例: /new 使用 typescript 和 svelte 的 Express 应用 |
/newNotebook |
在聊天视图中使用 /newNotebook 命令根据您的要求生成新的 Jupyter 笔记本。使用自然语言描述笔记本应包含的内容。示例: /newNotebook 获取人口普查数据并用 Seaborn 预览关键见解 。 |
终端
获取有关 shell 命令的帮助以及如何在终端中运行命令时解决错误。
操作 | 描述 |
---|---|
⌘I (Windows、Linux 为 Ctrl+I) | 开始终端行内聊天,使用自然语言询问有关 shell 命令和终端的问题。 示例: 这台机器有多少个核心? |
@terminal |
在聊天视图中使用 @terminal 参与者询问有关集成终端或 shell 命令的问题。示例: @terminal 列出此工作区中最大的 5 个文件 |
@terminal /explain |
在聊天视图中使用 /explain 命令来解释终端中的某些内容。示例: @terminal /explain top shell 命令 |
Python 和笔记本支持
您可以使用聊天来帮助您在原生 Python REPL 和 Jupyter 笔记本中完成 Python 编程任务。
操作 | 描述 |
---|---|
生成 ⌘I (Windows、Linux 为 Ctrl+I) |
在笔记本中开始行内聊天以生成代码块或 Markdown 块。 |
# |
在您的聊天提示中附加来自 Jupyter 内核的变量以获得更相关的响应。 |
原生 REPL + ⌘I (Windows、Linux 为 Ctrl+I) | 在原生 Python REPL 中开始行内聊天并运行生成的命令。 |
⌃⌘I (Windows、Linux 为 Ctrl+Alt+I) | 打开聊天视图并使用编辑或代理模式对笔记本进行编辑。 |
/newNotebook |
在聊天视图中使用 /newNotebook 命令根据您的要求生成新的 Jupyter 笔记本。使用自然语言描述笔记本应包含的内容。示例: /newNotebook 获取人口普查数据并用 Seaborn 预览关键见解 。 |