尝试以扩展 VS Code 中的代理模式!

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 操作,例如解释或修复代码、生成测试或审查文本选择
    • 代码操作:获取编辑器代码操作(灯泡图标)以修复代码检查和编译器错误
  • 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+.) 在聊天视图中切换不同的聊天模式
⌥⌘. (Windows、Linux Ctrl+Alt+.) 显示模型选择器以选择不同的 AI 聊天模型
添加上下文... 为您的聊天提示附加不同类型的上下文
/ 命令 使用斜杠命令执行常见任务或调用可重用聊天提示
# 提及 引用常用工具或聊天变量,以在提示中提供上下文
@ 提及 引用聊天参与者来处理特定领域请求。
编辑 () 编辑之前的聊天提示并撤消更改。
历史记录 () 访问您的聊天会话历史记录。
语音 () 使用语音(语音聊天)输入聊天提示。聊天回复将被大声读出。

提示

  • 使用 # 提及为您的聊天提示添加更多上下文。
  • 使用 / 命令和 @ 参与者以获得更精确和相关的答案。
  • 保持具体、简单,并提出后续问题以获得最佳结果。
  • 选择适合您需求的聊天模式:提问、编辑、代理或创建自定义模式。

为您的提示添加上下文

通过为您的聊天提示提供上下文来获得更相关的回复。从不同类型的上下文中选择,例如文件、符号、编辑器选择、源代码管理提交、测试失败等。

操作 描述
添加上下文 打开快速选择器以选择与您的聊天提示相关的上下文。从不同类型的上下文中选择,例如工作区文件、符号、当前编辑器选择、终端选择等。
拖放文件 从资源管理器或搜索视图中拖放文件,或将编辑器选项卡拖放到聊天视图中。
拖放文件夹 将文件夹拖放到聊天视图中以附加其中的文件。
拖放问题 从“问题”面板中拖放项目。
#<文件|文件夹|符号> 输入 #,然后跟上文件、文件夹或符号名称,将其添加为聊天上下文。
`#` 提及 输入 #,然后跟上聊天变量以添加特定的上下文类型或工具。

聊天变量

在您的聊天提示中使用聊天变量来引用与您问题相关的上下文或引用特定工具。使用 # 提及语法在您的聊天提示中引用聊天变量或工具。

工具可以作为代理模式下自主编码工作流的一部分被调用。扩展和 MCP 服务器可以提供您可以在聊天提示中使用的额外工具。

聊天变量/工具 描述
#更改 源代码管理更改列表。
#代码库 在当前工作区中执行代码搜索,以自动查找与聊天提示相关的上下文。
#编辑文件 用于在工作区中创建和编辑文件的工具集。
#扩展 用于查找 VS Code 扩展并提问的工具。例如,“如何开始使用 Python #extensions?”
#获取 从网页获取内容 - 提供 URL。
#查找测试文件 用于在当前工作区中查找测试文件的工具。
#<文件|文件夹|符号> 将文件、文件夹或代码符号添加为上下文。
#github仓库 在 GitHub 仓库中执行代码搜索的工具。例如,“什么是全局代码片段 #githubRepo microsoft/vscode。”
#新建 用于创建新的 VS Code 工作区脚手架的工具。
#打开简易浏览器 用于打开内置简易浏览器并预览本地部署的 Web 应用程序的工具。
#问题 将“问题”面板中的工作区问题和故障添加为上下文。在修复代码或调试时非常有用。
#读取单元格输出 用于读取笔记本单元格输出的工具。
#运行命令 用于在终端中运行命令并读取输出的工具。
#运行笔记本 用于在笔记本中运行单元格并读取输出的工具。
#运行任务 用于在工作区中运行任务并读取输出的工具。
#运行测试 用于在工作区中运行测试并读取输出的工具。
#搜索 用于在当前工作区中搜索文件的工具集。
#搜索结果 将搜索视图中的结果作为上下文添加到您的提示中。
#选择 将当前编辑器选择作为上下文添加到您的提示中。
#终端选择 将当前终端选择作为上下文添加到您的聊天提示中。
#终端上次命令 将上次运行的终端命令作为上下文添加到您的聊天提示中。
#测试失败 添加测试失败信息作为上下文。在运行和诊断测试时很有用。
#用法 “查找所有引用”、“查找实现”和“转到定义”的组合。
#VSCodeAPI 引用 VS Code 扩展 API 并提出与 VS Code 扩展开发相关问题的工具。

斜杠命令

斜杠命令是聊天中特定功能的快捷方式。您可以使用它们快速执行操作,例如修复问题、生成测试或解释代码。

斜杠命令 描述
/文档 从编辑器行内聊天生成代码文档注释。
/解释 解释代码块、文件或编程概念。
/修复 请求 Copilot 修复代码块或解决编译器或代码检查错误。
/帮助 获取有关在 VS Code 中使用聊天的帮助。
/测试 为编辑器中所有或仅选定的方法和函数生成测试。
/设置测试 获取有关为代码设置测试框架的帮助。获取相关测试框架的建议、设置和配置步骤,以及 VS Code 测试扩展的建议。
/清除 在聊天视图中开始新的聊天会话。
/新建 创建新的 VS Code 工作区或文件脚手架。使用自然语言描述您需要的项目/文件类型,并在创建前预览脚手架内容。
/新建笔记本 根据您的要求创建新的 Jupyter 笔记本脚手架。使用自然语言描述笔记本应包含的内容。
/搜索 为搜索视图生成搜索查询。使用自然语言描述您想要搜索的内容。
/启动调试 生成一个 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)。
自动批准终端命令(实验性) 在代理模式中,通过允许列表和拒绝列表启用终端命令的自动批准
MCP 配置MCP 服务器以通过额外功能和工具扩展代理模式。

提示

  • 为代理模式添加额外工具以扩展其功能。
  • 配置自定义聊天模式以定义代理模式的运行方式,例如实现只读规划模式。
  • 定义自定义指令以指导代理模式如何生成和组织代码。

自定义您的聊天体验

自定义您的聊天体验,以生成符合您的编码风格、工具和开发人员工作流程的回复。在 VS Code 中有几种自定义聊天体验的方法。

  • 自定义指令:定义生成代码、执行代码审查或生成提交消息等任务的通用指南或规则。自定义指令描述了 AI 应在何种条件下执行操作(任务应如何完成)。

  • 可重用提示文件:为生成代码或执行代码审查等常见任务定义可重用提示。提示文件是独立的提示,您可以直接在聊天中运行。它们描述了要执行的任务(任务应完成什么)。

  • 聊天模式:定义聊天如何操作、可以使用哪些工具以及如何与代码库交互。每个聊天提示都在聊天模式的边界内运行,无需为每个请求配置工具和指令。

提示

  • 定义特定于语言的指令,以为每种语言获取更准确的生成代码。
  • 将您的指令存储在工作区中,以便轻松与您的团队共享。
  • 为常见任务定义可重用提示文件,以节省时间并帮助团队成员快速上手。

编辑器 AI 功能

在编辑器中编码时,您可以使用 Copilot 在您键入时生成代码补全。调用行内聊天以提问并从 Copilot 获取帮助,同时保持编码流程不中断。例如,请求 Copilot 为函数或方法生成单元测试。获取有关代码补全行内聊天的更多信息。

操作 描述
代码补全 在编辑器中开始输入,并获得符合您的编码风格并考虑您现有代码的代码建议
代码注释 通过在代码注释中编写指令来提供代码补全提示。
示例:# 编写一个计算器类,包含加、减、乘方法。使用静态方法。
⌘I (Windows、Linux Ctrl+I) 启动编辑器行内聊天,直接从编辑器发送聊天请求。使用自然语言并引用聊天变量和斜杠命令来提供上下文。
F2 在代码中重命名符号时获取 AI 驱动的建议。
上下文菜单操作 使用编辑器上下文菜单访问常见的 AI 操作,例如解释代码、生成测试、审查代码等。右键单击编辑器以打开上下文菜单并选择Copilot
代码操作(灯泡图标) 在编辑器中选择代码操作(灯泡图标)以修复代码中的代码检查或编译器错误。

提示

  • 使用有意义的方法或函数名称,以便更快地获得更好的代码补全。
  • 选择代码块以限定您的行内聊天提示范围,或通过附加文件或符号来附加相关上下文。
  • 使用编辑器上下文菜单选项直接从编辑器访问常见的 Copilot 操作。

源代码管理和问题

使用 AI 分析您的提交和拉取请求中的更改,并提供提交消息和拉取请求描述的建议。

操作 描述
#更改 将当前源代码管理更改作为上下文添加到您的聊天提示中。
提交作为上下文 将源代码管理历史中的提交作为上下文添加到您的聊天提示中。
总结提交 右键单击源代码管理图中的提交,然后选择Copilot > 总结以生成提交更改的摘要。
提交消息 为源代码管理提交中的当前更改生成提交消息。
拉取请求描述 生成与您的拉取请求中的更改相对应的拉取请求标题和描述。
@github 在聊天中使用 @github 参与者询问关于您的仓库中的问题、拉取请求等。获取有关可用 GitHub 技能的更多信息。
示例:@github 有哪些分配给我的开放 PR?@github 显示 @dancing-mona 最近合并的 PR

审查代码(实验性)

使用 AI 对代码块进行快速审查,或对工作区中未提交的更改进行审查。审查反馈以注释形式显示在编辑器中,您可以在其中应用建议。

操作 描述
审查和注释 (预览版) 选择一个代码块,然后从编辑器上下文菜单中选择Copilot > 审查和注释以进行快速审查。
Copilot 代码审查 在源代码管理视图中选择Copilot 代码审查按钮,对所有未提交的更改进行更深入的审查。

搜索和设置

在搜索视图中获取语义相关的搜索结果,或协助在设置编辑器中搜索设置。

操作 描述
语义搜索(预览版) 在搜索视图中包含语义搜索结果(search.searchView.semanticSearchBehavior)。
设置搜索(预览版) 在设置编辑器中包含语义搜索结果(workbench.settings.showAISearchToggle)。

生成测试

Copilot 可以为您的代码库中的函数和方法生成测试。获取有关聊天中的斜杠命令的更多信息。

操作 描述
/测试 为编辑器中所有或仅选定的方法和函数生成测试。生成的测试将附加到现有测试文件或创建新的测试文件。
/设置测试 获取有关为代码设置测试框架的帮助。获取相关测试框架的建议、设置和配置步骤,以及 VS Code 测试扩展的建议。
/修复测试失败 请求 Copilot 提供修复失败测试的建议。
测试覆盖率(实验性) 为尚未被测试覆盖的函数和方法生成测试。获取更多信息

提示

  • 提供有关要使用的测试框架或库的详细信息。

调试和修复问题

使用 Copilot 帮助修复编码问题,并获取有关在 VS Code 中配置和启动调试会话的帮助。

操作 描述
/修复 请求 Copilot 提供如何修复代码块或如何解决代码中任何编译器或代码检查错误的建议。例如,帮助修复未解析的 Node.js 包名。
/修复测试失败 请求 Copilot 提供修复失败测试的建议。
/startDebugging (实验性) 生成一个 launch.json 调试配置文件并从聊天视图启动调试会话
copilot-debug 命令 终端命令,帮助您调试程序。在运行命令前加上前缀即可为其启动调试会话(例如,copilot-debug python foo.py)。

提示

  • 提供有关您需要的修复类型的额外信息,例如优化内存消耗或性能。
  • 留意编辑器中指示修复代码问题的建议的 Copilot 代码操作。

创建新项目脚手架

Copilot 可以通过生成项目结构脚手架来帮助您创建新项目,或根据您的要求生成笔记本。

操作 描述
代理模式 使用代理模式并使用自然语言提示来创建新项目或文件。例如,创建一个 svelte Web 应用程序来跟踪我的任务
/新建 在聊天视图中使用 /new 命令来创建新项目或新文件脚手架。使用自然语言描述您需要的项目/文件类型,并在创建前预览脚手架内容。
示例:/new 使用 typescript 和 svelte 的 Express 应用程序
/新建笔记本 在聊天视图中使用 /newNotebook 命令,根据您的要求生成新的 Jupyter 笔记本。使用自然语言描述笔记本应包含的内容。
示例:/newNotebook 获取人口普查数据并使用 Seaborn 预览关键洞察

终端

获取有关 shell 命令以及如何在终端中运行命令时解决错误的帮助。

操作 描述
⌘I (Windows、Linux Ctrl+I) 启动终端行内聊天,使用自然语言询问 shell 命令和终端。
示例:这台机器有多少个核心?
@terminal 在聊天视图中使用 @terminal 参与者询问有关集成终端或 shell 命令的问题。
示例:@terminal 列出此工作区中最大的 5 个文件
@terminal /解释 在聊天视图中使用 /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 命令,根据您的要求生成新的 Jupyter 笔记本。使用自然语言描述笔记本应包含的内容。
示例:/newNotebook 获取人口普查数据并使用 Seaborn 预览关键洞察

后续步骤