GitHub Copilot 在 VS Code 中的速查表
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)(长按)- 开始内联语音聊天
- 标签页 - 接受内联建议或导航到下一个编辑建议
- 逃离——拒绝内联建议
在VS Code中访问AI。
-
用自然语言开始聊天
- 聊天视图(⌃⌘I(Windows,Linux Ctrl+Alt+I)):将聊天对话保持在次要侧边栏
- 编辑器或终端内联聊天(⌘I(Windows,Linux Ctrl+I)):在流程中提问
- 快速聊天(⇧⌥⌘L(Windows,Linux Ctrl+Shift+Alt+L)):在不离开当前任务的情况下快速提问
-
编辑器中的AI。
- 内联建议:在你输入时获取建议,按Tab键接受建议
- 编辑右键菜单作:访问常见的AI作,如解释或修复代码、生成测试或审查文本选择
- 代码作:获取编辑器代码动作(lightbulb)来修复线条和编译器错误
-
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) | 在聊天视图中新开一个聊天会话。 |
| 在聊天视图中切换不同的Agent。 | |
| ⌥⌘。(Windows,Linux Ctrl+Alt+。) | 显示模型选择器以选择不同的AI模型进行聊天。 |
| 上下文窗口控制 | 聊天输入框中的可视化指示器显示上下文窗口的使用情况。悬停可查看总代币数量及类别细分。 |
补充背景...... |
在聊天提示中附加不同类型的上下文。 |
/-指挥 |
使用斜杠命令处理常见任务,或调用可重复使用的聊天提示。 |
#-提及 |
在提示中引用常用工具或聊天变量,提供上下文。 |
@-提及 |
引用聊天参与者以处理特定领域的请求。 |
| 编辑() | 编辑之前的聊天提示并恢复更改。 |
| 历史() | 访问你的聊天会话历史。 |
| 排队还是引导 | 在请求运行时发送跟进消息。选择排队、引导当前请求,或立即停止发送。 |
| 声音() | 通过语音聊天输入聊天提示。聊天回复会被朗读出来。 |
| KaTeX | 在聊天回复中渲染数学方程。使得 chat.math.enabled .右键点击一个数学表达式以复制源表达式。 |
| 美人鱼 | 在聊天回复中渲染美人鱼图解。使得 美人鱼聊天.enabled .右键点击图纸即可复制源代码。 |
小贴士
- 使用 -mentions 为你的聊天提示添加更多上下文。
#- 使用指令和参与者来获得更准确、更相关的答案。
/@- 具体点,保持简单,并提出后续问题以获得最佳效果。
- 选择符合您需求的经纪人:询问、编辑、代理,或创建定制代理。
为你的提示添加背景
通过为你的聊天提示提供背景信息,获得更相关的回复。可选择不同的上下文类型,如文件、符号、编辑器选择、源代码控制提交、测试失败等。
| 行动 | 描述 |
|---|---|
| 补充背景 | 打开快速选择,为你的聊天提示选择相关的上下文。您可以选择不同的上下文类型,如工作区文件、符号、当前编辑器选择、终端选择等。 |
| 拖放文件 | 从资源管理器或搜索视图拖拽文件,或将编辑器标签拖到聊天视图。 |
| 拖放文件夹 | 将文件夹拖放到聊天视图中,将文件附加到聊天视图中。 |
| 拖放问题 | 从问题面板拖放一个项目。 |
#<文件|文件夹|symbol> |
输入 ,然后加上文件、文件夹或符号名称,将其添加为聊天上下文。# |
#-提及 |
输入 ,然后使用聊天工具添加特定的上下文类型或工具。# |
聊天工具
在处理用户请求时,使用聊天工具完成专门任务。这类任务的例子包括在目录中列出文件、在工作区编辑文件、运行终端命令、获取终端输出等。
VS Code 提供了内置工具,你可以用 MCP 服务器和扩展工具扩展聊天。了解更多关于工具类型的介绍。
下表列出了VS Code内置工具:
| 聊天变量/工具 | 描述 |
|---|---|
#changes |
源码控制更改列表。 |
#codebase |
在当前工作区中进行代码搜索,自动找到与聊天提示相关的上下文。 |
#createAndRunTask |
在工作区创建并运行一个新任务。 |
#createDirectory |
在工作区创建一个新目录。 |
#createFile |
在工作区里创建一个新文件。 |
#edit(工具集) |
在工作区中启用修改功能。 |
#editFiles |
在工作区里对文件进行编辑。 |
#editNotebook |
对笔记本进行修改。 |
#extensions |
搜索并询问VS Code扩展。比如,“如何开始使用 Python #extensions?” |
#fetch |
从某个网页获取内容。例如,“总结 #fetch code.visualstudio.com/updates。” |
#fileSearch |
在工作区中用 glob patterns 搜索文件,并返回路径。 |
#getNotebookSummary |
获取笔记本细胞的列表及其详细信息。 |
#getProjectSetupInfo |
为不同类型项目的脚手架提供说明和配置。 |
#getTaskOutput |
在工作区中运行任务时获取输出。 |
#getTerminalOutput |
通过在工作区运行终端命令获取输出。 |
#githubRepo |
在GitHub仓库里搜索代码。例如,“什么是 microsoft/vscode #githubRepo 全局片段?” |
#installExtension |
安装一个VS Code扩展。 |
#listDirectory |
在工作区的目录中列出文件。 |
#new |
搭建一个新的VS Code工作区,预配置调试和运行配置。 |
#newJupyterNotebook |
支架,一本新的Jupyter笔记本给出了描述。 |
#newWorkspace |
创建一个新的工作区。 |
#openSimpleBrowser |
打开集成浏览器,预览本地部署的网页应用。 |
#problems |
将工作区问题和问题添加到问题面板作为上下文。在修复代码或调试时非常有用。 |
#readFile |
读取工作区文件的内容。 |
#readNotebookCellOutput |
读取笔记本单元格执行的输出。 |
#runCell |
运行一个笔记本单元。 |
#runCommands(工具集) |
启用终端中的运行命令并读取输出。 |
#runInTerminal |
在集成终端里运行一个shell命令。 |
#runNotebooks(工具集) |
启用运行中的笔记本单元。 |
#runTask |
在工作区里运行一个已有的任务。 |
#runTasks(工具集) |
在工作区中启用正在运行的任务并读取输出。 |
#runSubagent |
在一个孤立的子代理上下文中执行任务。有助于改善主代理线程的上下文管理。 |
#runTests |
在工作区运行单元测试。 |
#runVscodeCommand |
运行一个VS Code命令。例如,“启用禅意模式 #runVscodeCommand。” |
#search(工具集) |
启用当前工作区中的文件搜索功能。 |
#searchResults |
从搜索视图获取搜索结果。 |
#selection |
获取当前编辑器的选择(仅在选择文本时使用)。 |
#terminalLastCommand |
获取最后一次运行终端命令及其输出。 |
#terminalSelection |
获取当前的终端选择。 |
#testFailure |
获取单元测试失败信息。在进行和诊断测试时非常有用。 |
#textSearch |
在文件中寻找文本。 |
#todos |
通过待办事项列表跟踪聊天请求的实施和进展。 |
#usages |
结合了“查找所有引用”、“查找实现”和“前往定义”。 |
#VSCodeAPI |
询问VS Code功能和扩展开发。 |
斜击命令
斜杠命令是聊天中特定功能的快捷方式。你可以用它们快速执行作,比如修复问题、生成测试或解释代码。
| 斜击命令 | 描述 |
|---|---|
/doc |
从编辑内联聊天生成代码文档注释。 |
/解释一下 |
解释一个代码块、文件或编程概念。 |
/fix |
请求修复代码块,或者解决编译器或线条错误。 |
/测试 |
在编辑器中生成所有或仅针对所选方法和函数的测试。 |
/setupTests |
寻求帮助,为你的代码搭建一个测试框架。获取相关测试框架的推荐、搭建和配置步骤,以及VS Code测试扩展的建议。 |
/清场 |
在聊天视图中新开一个聊天会话。 |
/调试 |
显示聊天调试视图,检查聊天日志以便排查故障。 |
/新 |
搭建一个新的 VS Code 工作区或文件。用自然语言描述你需要的项目/文件类型,并在创建前预览搭档内容。 |
/newNotebook |
根据你的需求,搭建一个新的Jupyter笔记本。用自然语言描述笔记本应包含的内容。 |
/init |
生成或更新工作区指令(copilot-instructions.md或AGENTS.md基于你的项目结构和编码模式。 |
/计划 |
为复杂的编码任务制定详细的实施计划。研究需求,提出澄清问题,制定包含步骤、核实和决策的结构化计划。 |
/搜索 |
生成搜索视图的搜索查询。用自然语言描述你想搜索的内容。 |
/startDebugging |
生成launch.json调试配置文件,并从聊天视图开始调试会话。 |
/代理人 |
配置你的自定义代理。 |
/钩子 |
配置你的钩子。 |
/指令 |
配置你的自定义指令。 |
/提示 |
配置你的可重复使用的提示文件。 |
/技能 |
配置你的客服技能。 |
/<技能名> |
在聊天里运行一个特工技能。比如,如果你有一个名为webapp-testing.md,你可以通过输入来运行/webapp-testing. |
/<提示词名称> |
在聊天中运行一个可重复使用的提示。 |
聊天参与者
使用聊天参与者来处理聊天中的域特定请求。聊天参与者会以前缀,可以用来提问特定话题。VS Code 提供了内置的聊天参与者,例如@@github,@terminal, 和@vscode,扩展项目可以提供额外的参与者。
| 聊天参与者 | 描述 |
|---|---|
@github |
使用该@github参与者可以提问关于GitHub仓库、问题、拉取请求等问题。获取更多关于可用GitHub技能的信息。示例: @github 分配给我的开放PR有哪些?,@github 给我看看最近合并的 @dancing-mona PR |
@terminal |
使用该@terminal参与者可以询问关于集成终端或壳级命令的问题。示例: @terminal列出该工作区中最大的5个文件 |
@vscode |
使用该@vscode参与者可以提问关于VS Code的特性、设置以及VS Code扩展API的问题。示例: @vscode如何启用单词换装? |
@workspace |
使用该@workspace参与者可以询问当前工作区的问题。示例: @workspace认证是如何实现的? |
使用代理
使用Agent时,你可以用自然语言指定一个高级任务,让AI自主推理请求,规划所需工作,并将修改应用到你的代码库中。代理结合代码编辑和工具调用来完成你指定的任务。在处理你的请求时,它会监控编辑和工具的结果,并迭代以解决出现的问题。
| 行动 | 描述 |
|---|---|
| ⇧⌘I(Windows Ctrl+Shift+I,Linux Ctrl+Shift+Alt+I) | 切换到聊天视图中使用代理 |
| 工具() | 使用代理时配置可用的工具。从内置工具、MCP服务器和扩展提供的工具中选择。 |
| 自动批准工具 | 启用所有工具的自动审批,使用代理时( chat.tools.autoApprove ). |
| 自动批准终端命令 | 启用使用代理时自动批准终端命令( chat.tools.terminal.autoApprove ). |
| MCP | 配置MCP服务器以扩展代理能力和工具。 |
| 第三方代理 | 使用外部供应商的代理,如Claude Agent(预览版)和OpenAI Codex,配合你的Copilot订阅。 |
| Claude Agent(预览版) | 启动由Anthropic的Claude Agent SDK驱动的Claude Agent会话。使用/代理人,/钩子, 和/记忆用于高级工作流程的斜击命令。 |
小贴士
- 使用代理时增加额外工具以扩展其功能。
- 配置自定义代理以定义代理的作方式,例如实现只读规划模式。
- 定义自定义指令,指导代理如何生成和结构化代码。
- 可以尝试第三方代理,比如Claude Code或OpenAI Codex,获得替代的代理编码体验。
规划
在VS Code聊天中使用计划代理,在开始复杂编码任务前制定详细的实施计划。将批准的计划交给实施代理开始编码。
| 行动 | 描述 |
|---|---|
| 计划代理人 | 从代理人下拉菜单选择计划代理人,或使用以下作/计划用 Slash 命令为复杂编码任务创建详细的实现计划。 |
| 待办事项列表 | 查看待办事项列表以跟踪复杂任务的进展。通过setting(chat.tools.todos.showWidget环境。 |
定制你的聊天体验
自定义你的聊天体验,生成符合你编码风格、工具和开发者工作流程的回复。在VS Code中,有多种方式可以自定义你的聊天体验:
-
自定义指令:为生成代码、执行代码审查或生成提交信息等任务制定通用指南或规则。自定义指令描述了AI应在哪些条件下运行(即任务应如何完成)。
-
可重复使用的提示文件:定义可用于常见任务的可重复使用提示,如生成代码或进行代码审查。提示文件是你可以直接在聊天中运行的独立提示词。它们描述了要执行的任务(应完成的任务)。
-
自定义代理:定义聊天的运作方式、可用工具以及与代码库的交互方式。每个聊天提示都在代理的范围内运行,无需为每个请求配置工具和指令。
小贴士
- 定义语言特定的指令,以获得更准确的生成代码。
- 将你的指令存储在工作区,方便与团队分享。
- 为常见任务定义可重复使用的提示文件,以节省时间并帮助团队成员快速上手。
编辑器AI功能
在编辑器中编写代码时,你可以在输入时使用 Copilot 生成内联建议。调用 Inline Chat 提问并获得 Copilot 的帮助,同时保持编码流程。例如,让 Copilot 生成函数或方法的单元测试。获取更多关于内联建议和 Inline Chat 的信息。
| 行动 | 描述 |
|---|---|
| 内联建议 | 开始在编辑器中输入,获得符合你编码风格并结合现有代码的内联建议。 |
| 代码注释 | 通过代码注释中写下指令,提供内联建议提示。 示例: # 编写一个计算器类,包含加法、减法和乘法等方法。使用静态方法。 |
| ⌘I (Windows,Linux Ctrl+I) | 启动编辑器的内联聊天,直接向编辑器发送聊天请求。使用自然语言,引用聊天变量和斜杠命令来提供上下文。 |
| F2 | 在重命名代码符号时,获取AI驱动的建议。 |
| 右键菜单作 | 使用编辑器的上下文菜单访问常见的AI作,如解释代码、生成测试、审查代码等。在编辑器中右键点击打开上下文菜单,选择生成代码。 |
| 代码动作(灯泡) | 在编辑器中选择代码动作(灯泡),用于修复代码中的线条错误或编译错误。 |
小贴士
- 使用有意义的方法或函数名称,以更快获得更好的内联建议。
- 选择一个代码块来定义你的在线聊天提示,或通过附加文件或符号来附加相关上下文。
- 使用编辑器的上下文菜单选项,直接访问常见的AI驱动作。
源代码控制与问题
利用 AI 分析提交和拉取请求的变化,并提供提交信息和拉取请求描述的建议。
| 行动 | 描述 |
|---|---|
#changes |
在你的聊天提示中添加当前的源控更改作为上下文。 |
| 提交作为上下文 | 在聊天提示中添加源码控制历史中的提交作为上下文。 |
| 提交信息 | 在源控提交中生成当前更改的提交信息。 |
| 合并冲突(实验性) | 寻求帮助解决与AI的Git合并冲突。 |
| 拉取请求描述 | 生成一个与拉取请求内容相符的标题和描述。 |
@github |
使用该@github参与聊天,询问问题、拉取请求等,涵盖你的仓库。获取更多关于可用 GitHub 技能的信息。示例: @github 分配给我的开放PR有哪些?,@github 给我看看最近合并的 @dancing-mona 的 PR |
复习代码(实验性)
使用AI快速审查代码块,或对工作区中未承诺的更改进行审查。审核反馈会以评论形式显示在编辑器中,你可以应用建议。
| 行动 | 描述 |
|---|---|
| 影评精选(预览) | 选择一段代码,然后从编辑器菜单中选择“生成代码>审核”,快速浏览。 |
| 代码审查 | 在源控视图中选择代码审查按钮,可对所有未承诺的更改进行更深入的审查。 |
搜索与设置
在搜索视图中获取语义相关的搜索结果,或在设置编辑器中帮助搜索设置。
| 行动 | 描述 |
|---|---|
| 设置搜索 | 在设置编辑器中包含语义搜索结果( workbench.settings.showAISearchToggle ). |
| 语义搜索(预览) | 在搜索视图中包含语义搜索结果( 搜索。搜索视图。语义搜索行为 ). |
生成测试
VS Code 可以通过在聊天中使用斜杠命令,生成代码库中的函数和方法测试。斜杠命令是一种用于常见任务的简写,可以在聊天提示中使用。输入后跟命令名称即可使用斜杠命令。/
| 行动 | 描述 |
|---|---|
/测试 |
在编辑器中生成所有或仅针对所选方法和函数的测试。生成的测试会附加到现有的测试文件中,或者创建新的测试文件。 |
/setupTests |
寻求帮助,为你的代码搭建一个测试框架。获取相关测试框架的推荐、搭建和配置步骤,以及VS Code测试扩展的建议。 |
/fixTestFailure(修正测试失败) |
向Copilot咨询如何修复失败测试的建议。 |
| 测试覆盖率(实验性) | 生成尚未被测试涵盖的函数和方法的测试。获取更多信息。 |
小贴士
- 提供关于测试框架或库的详细信息。
调试和修复问题
使用 Copilot 帮助修复编码问题,并获得 VS Code 中配置和调试会话的帮助。
| 行动 | 描述 |
|---|---|
/fix |
请向 Copilot 咨询如何修复代码块,或者如何解决代码中的编译器或线条错误。例如,帮助修复未解决的包名Node.js。 |
/fixTestFailure(修正测试失败) |
向Copilot咨询如何修复失败测试的建议。 |
/startDebugging (实验性) |
生成launch.json调试配置文件,并从聊天视图开始调试会话。 |
副驾驶调试指挥 |
终端命令帮助你调试程序。在启动调试会话的前缀前,使用运行命令(例如,Copilot-调试 Python foo.py). |
小贴士
- 提供关于你需要修复的额外信息,比如优化内存占用或性能。
- 在编辑器中关注“Copilot Code Actions”,这些动作显示了修复代码问题的建议。
支架:一个新项目
Copilot 可以通过生成项目结构的支架,或根据需求生成笔记本,帮助你创建新项目。
| 行动 | 描述 |
|---|---|
| 代理人 | 使用Agent并使用自然语言提示词创建新项目或文件。例如,创建一个简洁的网页应用来跟踪我的任务. |
/新 |
使用该/新在聊天视图中按命令,用来搭建新项目或新文件。用自然语言描述你需要的项目/文件类型,并在创建前预览搭档内容。示例: /new Express 应用,使用 Typescript 和 svelte |
/newNotebook |
使用该/newNotebook在聊天视图中命令,根据您的需求生成新的 Jupyter 笔记本。用自然语言描述笔记本应包含的内容。示例: /newNotebook 获取人口普查数据并通过Seaborn预览关键洞察. |
终端
获取关于shell命令以及如何在终端执行命令时解决错误的帮助。
| 行动 | 描述 |
|---|---|
| ⌘I (Windows,Linux Ctrl+I) | 启动终端内联聊天,用自然语言询问shell命令和终端。 示例: 这台机器有多少核? |
@terminal |
使用该@terminal在聊天视图中参与,以便提问关于集成终端或 shell 命令的问题。示例: @terminal列出该工作区中最大的5个文件 |
@terminal /解释 |
使用该/解释一下在聊天视图中用命令来解释终端中的某些内容。示例: @terminal /explain top shell 命令 |
Python 和笔记本支持
你可以用聊天功能帮助你完成Native Python REPL和Jupyter笔记本中的Python编程任务。
| 行动 | 描述 |
|---|---|
| Generate ⌘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预览关键洞察. |