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
  • 在VS代码中打开
  • 在VS Code Insiders中开放
.右键点击一个数学表达式以复制源表达式。
美人鱼 在聊天回复中渲染美人鱼图解。使得
美人鱼聊天.enabled
  • 在VS代码中打开
  • 在VS Code Insiders中开放
.右键点击图纸即可复制源代码。

小贴士

  • 使用 -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.mdAGENTS.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
  • 在VS代码中打开
  • 在VS Code Insiders中开放
).
自动批准终端命令 启用使用代理时自动批准终端命令
chat.tools.terminal.autoApprove
  • 在VS代码中打开
  • 在VS Code Insiders中开放
).
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代码中打开
  • 在VS Code Insiders中开放
).
语义搜索(预览) 在搜索视图中包含语义搜索结果(
搜索。搜索视图。语义搜索行为
  • 在VS代码中打开
  • 在VS Code Insiders中开放
).

生成测试

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预览关键洞察.

下一步