应用的 GitHub Copilot 技术
前面的单元介绍了如何设置 Copilot,并提到了它如何让开发人员能够更快地开始编写代码。
本单元将介绍 Copilot 如何帮助你开发现有项目并完成更复杂的任务。
使用 GitHub Copilot 执行高级任务
作为一名工程师,处理现有项目是很常见的事情。 修复代码或实现功能时,我们需要编写文档和测试,并使用终端命令。 让我们看看使用 GitHub Copilot 执行此操作的几种方法。
隐式提示
尽管你可以在提示中具体说明以获取 GitHub Copilot 的指导,但也可以利用隐式提供预创建提示的功能来获取合适的答案。
例如,你正在处理 Python 项目,并且打开了一个文件,文件中包含以下代码且代码中有一个 bug:
with open("file.txt", "r") as file:
# Read the file and print the content
contents = file.read
在选择代码并在 Windows 上使用 Ctrl+i 或在 Mac 上使用 Command+i 后,可以使用内联聊天和 /fix 斜杠命令来要求 GitHub Copilot 帮助你修复代码。
如果仅键入 /fix,你可能会从 GitHub Copilot 获得类似于此建议的响应: “若要修复代码,请在 file.read 后面添加括号以调用读取方法并修复方法名称中的拼写错误。
斜杠命令可用于内联聊天和聊天界面。 除了 /fix 该命令,下面是可在 Copilot 聊天中使用的一些最有用的斜杠命令:
-
/doc:向指定代码或所选代码添加注释。 -
/explain:获取有关代码的说明。 -
/generate:生成用于回答指定问题的代码。 -
/help:获取有关如何使用 Copilot 聊天的帮助。 -
/optimize:分析和改进所选代码的运行时。 -
/tests:为所选代码创建单元测试。
使用 / 命令可以更轻松地与 GitHub Copilot 交互,并帮助你获得更好的回复,而无需编写更长的提示。
将 / 命令等功能与内联聊天相结合,你可以选择最适合你和你正在处理的代码的方式。
选择性上下文
可以自定义 GitHub Copilot,根据你正在工作的上下文提供建议。 例如,可以要求 GitHub Copilot 根据整个工作区或终端输出提供建议。
无需打开许多文件,GitHub Copilot 即可为你的项目提供准确的建议。 假设你需要使用 Dockerfile 来打包项目。
Dockerfile 是一个特殊文件,需要特定说明来打包项目。 可以使用 @workspace 代理询问 GitHub Copilot 如何帮助你。例如,打开 GitHub Copilot Chat 并键入以下命令:
@workspace I need to create a Dockerfile for this project, can you generate one that will help me package it?
你将获得一个回复,其中说明了为项目创建 Dockerfile 的步骤以及要执行的文件步骤。
与往常一样,如果建议不完全是你要查找的内容,则可以重写提示并使其更具体。 例如,可以要求 GitHub Copilot 在创建 Dockerfile 时使用特定步骤:
@workspace help me create a Dockerfile to package this project but make sure you are using a Virtual Environment for Python.
除了 @workspace 代理,还可以使用其他代理(例如 @terminal, @file)获取 @directory 特定于上下文的建议:
-
@terminal:根据终端输出提供建议。- 示例: @terminal 如何修复我看到的错误消息?
-
@file:重点介绍特定文件的内容。- 示例: @file 能否在 main.py 中帮助重构此函数?
-
@directory:考虑特定目录的内容。- 示例: @directory 如何优化 utils 目录中的脚本?
如果遇到困难或未获得所需结果,可以重新组织提示的措辞,或开始编写代码,让 Copilot 自动完成。
注意
虽然可以具体说明 @workspace,但默认情况下,GitHub Copilot 会使用文本编辑器中的打开文件作为附加上下文。