问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

GitHub Copilot 使用技巧完全指南

创作时间:
作者:
@小白创作中心

GitHub Copilot 使用技巧完全指南

引用
CSDN
1.
https://m.blog.csdn.net/JackLang/article/details/141140581

本文是一篇详细的GitHub Copilot使用指南,涵盖了从基础代码补全到高级提示工程的全方位技巧。无论你是GitHub Copilot的新手还是老用户,都能从本文中获得实用的建议和灵感。

目标读者

  • 本文不包含如何安装 GitHub Copilot
  • 本文介绍了 GitHub Copilot 使用方法和一些技巧

目录

  • 目标读者
    1. 代码补全使用
    1. Copilot Chat 使用
    1. Copilot Chat 使用案例
    1. Github Copilot 的提示工程
  • 官方参考文档

1. 代码补全使用

1.1 基础中的基础

最简单的使用,就是当你写一部分代码以后,GitHub Copilot 会提示你他的补全代码,按 tab 键则接受他的补全。如果是已有代码,就把光标移过去按空格就可以触发补全。(即补全是收每次键盘动作触发的)

补全的场景包括:

  • 代码补全
  • 根据文件名补全
  • 根据函数名补全
  • 根据注释补全
  • 他们的综合
  • 注释补全
  • xml、sql 等等等补全(例如 mybatis 的 xml 文件也可以补全)

1.2 补全切换

GitHub Copilot 会生成多种补全方案,用如下快捷键切换:

OS
下一个补全
前一个补全
macOS
Option+]
Option+[
Windows or Linux
Alt+]
Alt+[

1.3 新窗口中打开所有补全候选

如果您不想使用 GitHub Copilot 提供的任何初始建议,您可以在新选项卡中显示多个建议。在提示的时候使用快捷键:

OS
新窗口打开全部提示
macOS
Command+Shift+A
Windows or Linux
Ctrl+Enter

1.4 接受补全中的一部分(一个单词或者一行)

你可以只接受一行或者一个单词,在实际中这很有用。

OS
接受下一个词
接受下一行
macOS
Command+→
Command+Control+→
Windows or Linux
Control+→
Control+Alt+→

重要:如何修改 Copilot 的快捷键

需改配置这个很重要,因为有的时候可能会有快捷键冲突或者未配置,修改这里即可。

2. Copilot Chat 使用

你可以让 Copilot Chat 提供代码建议、解释代码、生成单元测试并建议代码修复。

  1. 通过单击 JetBrains IDE 窗口右侧的 Copilot Chat 图标打开 Copilot Chat 窗口。
  2. 在提示框中输入提示。
  3. 评估 Copilot Chat 的答复,在需要时进一步提交新的提示词。返回通常包括交互式元素。例如,响应可能包括复制或插入代码块的按钮。

要查看 Copilot Chat 生成响应的用到的文件,请选择响应下方的引用下拉列表。

  1. 如何在输入中换行:Shift + Enter

2.1 在提示中使用命令(/ + 关键词

使用斜杠命令避免为常见场景编写复杂的提示。要使用斜杠命令,请在聊天提示框中键入 /,然后键入命令。(键入 / 后,IDE 会提示你可用的命令有哪些)

斜杠命令包括:

  • /tests:为选定的代码生成单元测试
  • /fix:对所选代码中的问题提出修复建议
  • /explain:解释所选代码
  • /help:了解有关使用 Copilot Chat 的更多信息

2.2 引用参考代码文件

默认情况下,Copilot Chat 将引用打开的文件或选择的代码。还可以通过将文件拖到聊天提示框中来告诉 Copilot Chat 要引用哪些文件。或者,您可以右键单击文件,选择 GitHub Copilot,然后在 Chat 中选择参考文件。

3. Copilot Chat 使用案例

可以向 Copilot Chat 询问有关项目的特定问题或一般软件问题。还可以让 Copilot Chat 编写代码、修复错误、编写测试和增加注释。

3.1 提问通用的软件问题

可以向 Copilot Chat 提出通用的软件问题。例如:

  • 告诉我 nodejs 服务端常用的框架选型
  • 如何构建一个 express 服务
  • 如何更新一个 npm 软件包

3.2 问有关项目的问题

可以向 Copilot Chat 询问有关项目的问题。请尝试以下策略以给 Copilot 提供正确的上下文:

  • 光标选中高亮相关的代码行。
  • 在 IDE 中打开相关文件。
  • 添加文件作为参考。(上一节介绍了,可以看一下)

你的提问可以例如:

  • 这个函数使用了什么排序算法
  • 这些文件是如何关联在一起的(需要引用所有文件)

3.3 写代码

可以让 Copilot 为您编写代码。例如:

  • 写一个将列表中所有数字加在一起的函数
  • 给这个函数增加一个错误处理逻辑

当 Copilot 返回代码块时,响应包括可交互的选项,用来复制代码或在光标处插入代码。

3.4 修复、改进和重构代码

如果打开的文件包含错误,请使用 /fix 斜杠命令要求 Copilot 修复错误。还可以提出要求来改进或重构代码,例如:

  • 如何改进这个代码
  • 使用 C# 重写改代码
  • 给这个代码添加错误处理逻辑

3.5 编写测试代码

使用 /tests 斜杠命令要求 Copilot 为打开的文件或选定代码编写测试。例如:

  • /tests
  • /tests 使用 Jest 框架
  • /tests 确保这个函数不接受任何空列表
  • /tests 斜杠命令为现有代码编写测试。如果想在编写代码之前编写测试(测试驱动开发),去掉 /tests 命令。例如:
  • 给一个对列表元素进行求和的 JavaScript 函数编写测试代码

4. Github Copilot 的提示工程

4.1 从通用到具体

在为 Copilot 编写提示时,首先给 Copilot 一个目标或场景的广泛描述。然后列出任何具体要求。例如:

  • 写一个判断是否为质数的函数
  • 该函数应该接受一个整数,如果整数是质数,则返回 true
  • 如果输入不是合法正整数,函数应该告知调用方错误

4.2 提供示例(注意:这个示例我没有尝试成功,无法生成良好的代码)

使用示例帮助 Copilot 了解您想要什么。您可以提供示例输入数据、示例输出和示例实现。例如:

  • 编写一个函数,查找字符串中的所有日期并将它们返回到数组中。日期的格式可以如下所示:
  • 05/02/24
  • 05/02/2024
  • 5/2/24
  • 5/2/2024
  • 05-02-24
  • 05-02-2024
  • 5-2-24
  • 5-2-2024

使用示例:

findDates("我在11/14/2023预约了牙医,12-1-23要去参加读书俱乐部")

返回:

["11/14/2023", "12-1-23"]

单元测试也可以作为示例。在编写函数之前,您可以使用 Copilot 为函数编写单元测试。然后,您可以要求 Copilot 编写一个由这些单元测试描述的函数。

4.3 将复杂的任务分解为简单的任务(所有的提示工程中,这一条都很适用)

如果您希望 Copilot 完成复杂或大型任务,请将任务分解为多个简单的小型任务。例如,不要让 Copilot 生成单词搜索拼图,而是将过程分解为更小的任务,并让 Copilot 一个接一个地完成它们:

  1. 编写一个函数来生成一个 10 x 10 的字母网格。
  2. 编写一个函数来查找字母网格中的所有单词,给定一个有效单词列表。
  3. 编写一个函数,使用前面的函数生成一个 10 x 10 的字母网格,其中至少包含 10 个单词。
  4. 更新之前的功能以打印字母网格和网格中的 10 个随机单词。

4.4 避免模糊不清的语句

避免模棱两可的术语。例如,当你问 “这是干什么的” 的时候,“这” 既可以指代当前文件,也可以指代上一个 Copilot 的回答,或者又可以指代一段特定的代码块。你应该这么问:

  • createUser 函数有什么作用?
  • 上一个回复中的代码有什么作用?

歧义也适用于引入的第三方库:

  • 如果您使用的是不常见的库,请描述该库的作用。
  • 如果你想要使用特定库,请在文件顶部使用 import 语句导入,或指定要使用的库。(这样 Copilot 才能感知到你的意图)

4.5 明示相关代码

如果您在 IDE 中使用 Copilot,请打开相关文件,并关闭不相关的文件。Copilot 将使用打开的文件来理解您的请求。如果您在 IDE 中使用 Copilot Chat,请打开该文件或高亮你希望 Copilot 引用的代码。还可以在 Copilot Chat 中指定应引用哪些文件。

4.6 尝试和迭代

如果没有得到想要的补全或者生成结果,迭代提示次并反复尝试。如果在编码时使用 Copilot 获取建议,您可以完全删除补全代码并重新开始;或者可以保留建议并要求进行修改。如果使用的是 Copilot Chat,可以在下一个提示词中引用之前的回答结果。或者,可以删除之前的回答并整体重新开始。

4.7 遵循良好的编码实践

如果您在向 Copilot 询问代码库中的建议或解释时没有得到您想要的回复,请确保现有的代码遵循最佳实践并且易于阅读。例如:

  • 使用一致的代码风格和模式
  • 为变量和函数使用描述性名称
  • 代码被组织成合理的模块、组件或者域

官方参考文档

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号