在 VS Code 中尝试

在 VS Code 中使用提问模式

Visual Studio Code 中的聊天功能允许您使用自然语言与大型语言模型 (LLM) 交互,以获取有关您代码的帮助。聊天的提问模式经过优化,用于询问有关代码库、编码和一般技术概念的问题。提问模式对于更好地理解您的代码库、集思广益和获取编码任务方面的帮助特别有用。

先决条件

为何使用提问模式?

提问模式经过优化,用于回答有关代码库、编码和一般技术概念的问题。您可以使用它来

  • 询问有关代码库的问题,例如“数据库连接字符串在哪里定义?”或“解释排序函数”。
  • 集思广益,例如“如何提高应用程序的性能?”或“提供 3 种不同的方法来实现搜索功能”。
  • 获取编码任务方面的帮助,例如“如何创建一个新的 React 组件?”或“如何实现工厂模式?”。

在提问模式下,响应可能包含代码块,您可以将其应用到您的代码库。这对于单个文件内的小型编辑效果很好。但是,编辑模式代理模式更适合在多个文件之间进行较大更改或处理更复杂的编码任务。

使用提问模式

请按照以下步骤开始在 VS Code 中使用提问模式

  1. 打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I)),然后从聊天模式选择器中选择提问

    Screenshot showing the Chat view, showing the mode dropdown with "Ask" selected.

    直接在 VS Code 中打开提问模式:稳定版预览版

  2. 在聊天输入字段中键入您的问题,然后选择发送 (Enter) 提交。

    尝试一些以下示例问题以开始使用

    • “什么是工厂设计模式?”
    • “如何在 JavaScript 中使用 fetch API?”
    • “如何创建一个新的 React 组件?”
  3. 通过使用添加上下文或 #-mentions 特定工作区文件或预定义上下文项(例如 #codebase)来向聊天提示添加上下文。

    通过添加上下文,您可以获得更相关的响应。例如,要询问特定于当前项目的问题,您可以使用 #codebase 上下文项。在聊天输入字段中键入 # 以查看可用上下文项列表。

    以下是一些使用上下文的示例提示

    • “#codebase 中定义 db 连接字符串的位置?”
    • “#calculator.test.js 使用哪个测试框架?”
    • “总结 #changes 中的更改”

    详细了解如何向聊天提示添加上下文

  4. 请注意,根据您的问题,响应可能包含不同类型的富文本内容,例如代码块、终端命令、链接以及对代码中符号的引用。

    了解如何将代码块应用到代码库,或直接在集成终端中运行终端命令。

应用聊天中的代码块

当您的聊天响应包含代码块时,您可以将它们单独应用到工作区中的相应文件。VS Code 会执行智能应用,并将更改插入文件中的正确位置。

要将代码块应用到代码库,请将鼠标悬停在代码块上,然后选择在编辑器中应用按钮。VS Code 会尝试将建议的更改应用到您现有的代码。

Screenshot of a chat code block response, highlighting the actions to apply changes.

或者,您也可以复制代码或将其插入当前光标位置。将鼠标悬停在代码块上,然后选择相应的操作。

根据语言扩展,聊天响应中的代码块可能支持智能感知,类似于编辑器中的体验。

如果代码块包含 shell 命令,您可以使用插入到终端 (⌃⌥Enter (Windows, Linux Ctrl+Alt+Enter)) 操作将其直接在集成终端中运行。

Chat code block to list files with Insert into Terminal option visible

提示

使用聊天:下一个代码块 (⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown)) 和聊天:上一个代码块 (⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp)) 命令在代码块之间导航。

快速聊天

使用快速聊天可以快速提问,而无需在侧边启动完整的聊天会话。快速聊天是一种轻量级聊天体验,允许您打开快速选择来提问。

要打开快速聊天,请从标题栏中的 Copilot 菜单中选择快速聊天,或使用 ⇧⌥⌘L (Windows, Linux Ctrl+Shift+Alt+L) 键盘快捷方式。

您可以在快速聊天中提问,如果您想继续对话,可以使用在聊天视图中打开按钮将其提升到完整的聊天会话。

特殊关键词

在提示中,您可以使用特殊关键词来获得更相关的响应

  • #-mentions: 用于向聊天提示添加上下文。例如,#codebase 指代整个代码库,或 #<file | folder | symbol> 指代工作区中的特定文件、文件夹或符号。在聊天输入字段中键入 # 以查看可用上下文项列表。详细了解如何向聊天提示添加上下文

  • @-mentions: 用于引用聊天参与者,这有助于回答关于特定主题(例如与数据库交互)的问题。在聊天输入字段中键入 @ 以查看可用参与者列表。从内置参与者(例如 @terminal)或扩展提供的参与者中进行选择。

  • 斜杠命令:提供常用指令的快捷方式,例如 /fix 用于建议问题的修复方案,或 /explain 用于解释所选代码的工作原理。在聊天输入字段中键入 / 以查看可用斜杠命令列表。