在 VS Code 中使用提问模式
Visual Studio Code 中的聊天功能允许您使用自然语言与大型语言模型 (LLM) 交互,以获取代码帮助。聊天的提问模式经过优化,可用于提问有关代码库、编码和一般技术概念的问题。提问模式对于更好地理解代码库、进行头脑风暴和获得编码任务帮助特别有用。
先决条件
- 安装最新版本的 Visual Studio Code
- 访问 Copilot。Copilot 免费计划并获得每月补全和聊天交互的限制。
为什么要使用提问模式?
提问模式经过优化,可用于回答有关代码库、编码和一般技术概念的问题。您可以使用它来
- 提问有关代码库的问题,例如“数据库连接字符串在哪里定义?”或“解释排序函数”。
- 进行头脑风暴,例如“我如何提高应用程序的性能?”或“提供 3 种不同的方法来实现搜索功能”。
- 获取编码任务帮助,例如“我如何创建一个新的 React 组件?”或“我如何实现工厂模式?”。
在提问模式下,响应可以包含代码块,您可以将其应用到您的代码库。这对于单个文件中的小修改非常有效。然而,编辑模式和代理模式更适合跨多个文件进行较大更改或处理更复杂的编码任务。
使用提问模式
请按照以下步骤在 VS Code 中开始使用提问模式
-
打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I)),然后从聊天模式选择器中选择提问。
-
在聊天输入字段中输入您的问题,然后选择发送 (Enter) 以提交。
尝试以下一些示例问题以开始使用
“什么是工厂设计模式?”
“我如何在 JavaScript 中使用 fetch API?”
“我如何创建一个新的 React 组件?”
-
通过使用添加上下文或 #-提及特定的工作区文件或预定义的上下文项(如
#codebase
)来为您的聊天提示添加上下文。通过添加上下文,您可以获得更相关的响应。例如,要询问特定于您当前项目的问题,您可以使用
#codebase
上下文项。在聊天输入字段中输入#
以查看可用上下文项的列表。以下是一些使用上下文的示例提示
“在 #codebase 中,db 连接字符串在哪里定义?”
“#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
指的是整个代码库,或#<file | folder | symbol>
指的是工作区中的特定文件、文件夹或符号。在聊天输入字段中输入#
以查看上下文项列表。了解有关为聊天提示添加上下文的更多信息。 -
@-提及:用于引用聊天参与者,这有助于回答有关特定主题(例如与数据库交互)的问题。在聊天输入字段中输入
@
以查看可用参与者的列表。您可以选择内置参与者(如@terminal
)或扩展提供的参与者。 -
斜杠命令:提供常用指令的快捷方式,例如
/fix
建议解决问题,或/explain
解释所选代码的工作原理。在聊天输入字段中输入/
以查看可用斜杠命令的列表。