在 VS Code 中使用提问模式
Visual Studio Code 中的聊天功能让你能够使用自然语言与大语言模型 (LLM) 互动,以获取代码方面的帮助。聊天的*提问模式*经过优化,专门用于询问有关你的代码库、编程和常规技术概念的问题。提问模式对于更好地理解你的代码库、集思广益和获得编码任务帮助特别有用。
先决条件
- 安装最新版本的 Visual Studio Code
- 访问 Copilot。Copilot 免费计划并获得每月补全和聊天交互的限制。
为何使用提问模式?
提问模式经过优化,专门用于回答有关你的代码库、编程和常规技术概念的问题。你可以用它来:
- 询问关于代码库的问题,例如“数据库连接字符串在哪里定义的?”或“解释一下这个排序函数”。
- 集思广益,例如“如何提高我的应用程序的性能?”或“提供 3 种不同的方式来实现搜索功能”。
- 获取编码任务帮助,例如“如何创建一个新的 React 组件?”或“如何实现工厂模式?”。
在提问模式下,响应可以包含代码块,你可以将这些代码块应用到你的代码库中。这对于单个文件内的小型编辑非常有效。但是,对于跨多个文件进行较大更改或更复杂的编码任务,编辑模式和代理模式更为适合。
使用提问模式
按照以下步骤开始在 VS Code 中使用提问模式:
-
打开聊天视图(⌃⌘I (Windows、Linux Ctrl+Alt+I)),并从聊天模式选择器中选择**提问**。
直接在 VS Code 稳定版或 Insiders 版中打开提问模式。
-
在聊天输入框中输入你的问题,然后选择**发送**()以提交。
尝试用以下一些示例问题来开始:
“什么是工厂设计模式?”
“如何在 JavaScript 中使用 fetch API?”
“如何创建一个新的 React 组件?”
-
通过使用**添加上下文**或 #-提及特定的工作区文件或预定义的上下文项(如
#codebase
),为你的聊天提示添加上下文。通过添加上下文,你可以获得更相关的响应。例如,要询问特定于当前项目的问题,你可以使用
#codebase
上下文项。在聊天输入框中输入#
来查看可用的上下文项列表。以下是一些使用上下文的示例提示:
“在 #codebase 中,数据库连接字符串在哪里定义的?”
“#calculator.test.js 使用了哪个测试框架?”
“总结一下 #changes 中的变更”
了解更多关于为你的聊天提示添加上下文的信息。
-
请注意,根据你的问题,响应可能包含不同类型的富内容,例如代码块、终端命令、链接以及对你代码中符号的引用。
了解如何将代码块应用到你的代码库中,或直接在集成终端中运行终端命令。
从聊天中应用代码块
当你的聊天响应包含代码块时,你可以将它们单独应用到工作区中的相应文件。VS Code 会执行智能应用,并将更改插入到文件中的正确位置。
要将代码块应用到你的代码库中,请将鼠标悬停在代码块上,然后选择**在编辑器中应用**按钮。VS Code 会尝试将建议的更改应用到你现有的代码中。
或者,你也可以复制代码或将其插入到当前光标位置。将鼠标悬停在代码块上,然后选择相应的操作。
根据语言扩展的不同,聊天响应中的代码块可能支持 IntelliSense,类似于在编辑器中的体验。
如果代码块包含 shell 命令,你可以使用**插入到终端**(⌃⌥Enter (Windows、Linux Ctrl+Alt+Enter))操作直接在集成终端中运行它。
使用**聊天:下一个代码块**(⌥⌘PageDown (Windows、Linux Ctrl+Alt+PageDown))和**聊天:上一个代码块**(⌥⌘PageUp (Windows、Linux Ctrl+Alt+PageUp))命令在代码块之间导航。
快速聊天
使用快速聊天来问一个简单问题,而无需在侧边栏开启一个完整的聊天会话。快速聊天是一种轻量级的聊天体验,它会打开一个快速选择框让你提问。
要打开快速聊天,请从标题栏的 Copilot 菜单中选择**快速聊天**,或使用键盘快捷键 ⇧⌥⌘L (Windows、Linux Ctrl+Shift+Alt+L)。
你可以在快速聊天中提问,如果想继续对话,可以使用**在聊天视图中打开**按钮将其提升为完整的聊天会话。
特殊关键字
在你的提示中,你可以使用特殊关键字来获得更相关的响应:
-
#-提及:用于为你的聊天提示添加上下文。例如,
#codebase
指代整个代码库,或#<文件 | 文件夹 | 符号>
指代工作区中的特定文件、文件夹或符号。在聊天输入框中输入#
以查看上下文项列表。了解更多关于为你的聊天提示添加上下文的信息。 -
@-提及:用于引用*聊天参与者*,这有助于回答关于特定主题的问题,例如与数据库交互。在聊天输入框中输入
@
以查看可用的参与者列表。从内置参与者(如@terminal
)或扩展提供的参与者中进行选择。 -
*斜杠命令*:提供常用指令的快捷方式,例如
/fix
用于为问题提出修复建议,或/explain
用于解释所选代码的工作原理。在聊天输入框中输入/
以查看可用的斜杠命令列表。