GitHub Copilot Chat 完全指南,教你通过精准上下文获得更好的 AI 代码建议。
上下文是关键。这在所有形式的交流中都是真理,包括与 GitHub Copilot 这样的生成式 AI 助手的互动。当你与 GitHub Copilot Chat 交互时,有许多功能可供你使用,帮助引导 Copilot 朝正确的方向发展,帮助它理解你在寻找什么。反过来,你收到的建议也会改进!让我们逐一介绍一些最强大的技巧,帮助你充分利用这个工具。
假设我想理解一个代码块、改进其性能或发现任何安全缺陷。Copilot 首先需要知道的是我指的是哪段代码。你可以通过高亮显示相关代码来做到这一点。这会让 Copilot 把注意力集中在那个块上,它会根据看到的内容来响应。
你会注意到,在发送消息后,Chat 窗口中会出现一个引用小部件。如果展开这个小部件,你将能够看到 Copilot 在创建答案时考虑了什么。如果你曾经提出一个问题,而响应与你期望的无关,请检查引用部分。
Copilot 擅长解释代码、建议修复和生成测试等任务。事实上,这是 Copilot 最常见的三种工作负载,以至于有快捷方式可以帮助你以最少的输入完成这些任务!
对于经常使用的功能,Copilot Chat 提供斜杠命令。这包括用于生成单元测试的 /tests 或用于让 Copilot 确定错误代码修复的 /fix。你可以通过使用 /help 列出所有可用的命令。
重要 添加 / 命令后,确保按 Tab 来激活它。
你可能会注意到几个斜杠命令的一个特点是添加了 @workspace。简而言之,这允许 Copilot 创建你的工作区(或项目)的索引,并整体地构建对你的提示的响应。当考虑多个文件对于提供正确的代码很重要时,这相当强大。在下面的例子中,我们有一个使用在单独文件中定义的服务的代码块。如果我们使用包括 @workspace agent 的 /explain,我们可以看到更新的引用小部件不仅包括当前文件,还包括服务的源代码。这允许获得更强大的答案。
@workspace 使用整个工作区。但如果我们知道哪些文件对所提问题很重要怎么办?假设我在添加一些 JavaScript,我们需要按其 ID 查找元素并使用样式表中定义的某些 CSS 类?通过使用 #file,我们可以将 Copilot 指向那些特定的文件,我们可以再次在引用小部件中看到这些文件,提高代码的质量。
在我的例子中,我有一个 HTML 文件,其中有一个 ID 为 name-display 的元素。我有一个名为 message-header 的 CSS 类。如果我不能记住确切的名称(这对我来说很典型,我想对许多开发人员也是如此),我必须逐个打开每个文件,探索以找到名称,然后编码。使用 #file,我可以将 Copilot 指向这些文件,然后只需描述我需要的内容。Copilot 会为我推断出其余的内容!
GitHub Copilot 有一个标语是"你的 AI 配对程序员"。这是对如何最好地与 Copilot 交互的完美描述。如果我们想象与同事或任何其他人交谈,通常会有一些来回的交流,然后我们才能找到我们寻求的答案。在下面的例子中,我要求 Copilot 生成一个按距离的搜索函数,它做到了。但如果我们想要这是一个范围而不是相等怎么办?如果我们提供更多信息,我们将获得我们寻找的代码。
正如我在最上面强调的那样,上下文是交流的关键。我们越能帮助 Copilot 理解我们在寻找什么以及什么很重要,响应就会越好。使用上述技巧来帮助集中 Copilot 的注意力,将使你能够更快地移动并保持在状态中。
对于进一步的操作,你可以考虑阻止此人和/或报告滥用。