参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

在 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 稳定版Insiders 版中打开“询问”模式。

  2. 在聊天输入框中输入您的问题,然后选择“发送” () 来提交。

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

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

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

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

    • “#codebase 中的数据库连接字符串在哪里定义的?”
    • “#calculator.test.js 使用了哪个测试框架?”
    • “总结一下 #changes 中的变更”

    了解更多关于为聊天提示添加上下文的信息。

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

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

从聊天中应用代码块

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

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

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

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

根据语言扩展的不同,聊天回复中的代码块可能支持智能感知(IntelliSense),类似于编辑器中的体验。

如果代码块包含 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)) 命令在代码块之间导航。

快速聊天

使用“快速聊天”来快速提问,而无需在侧边栏启动一个完整的聊天会话。“快速聊天”是一种轻量级的聊天体验,它会打开一个“快速选择”框让您提问。

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

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

特殊关键字

在您的提示中,您可以使用特殊关键字来获得更相关的回复:

  • #-提及:用于为您的聊天提示添加上下文。例如,#codebase 指的是整个代码库,或 #<文件 | 文件夹 | 符号> 指的是工作区中的特定文件、文件夹或符号。在聊天输入框中输入 # 查看上下文项列表。了解更多关于为聊天提示添加上下文的信息。

  • @-提及:用于引用聊天参与者,这可以帮助回答有关特定主题的问题,例如与数据库交互。在聊天输入框中输入 @ 查看可用参与者的列表。您可以选择内置参与者如 @terminal,或由扩展提供的参与者

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