github发布的AI代码提示工具copilot最近非常火爆,据说可以直接面向注释编程。目前想要使用还需要申请资格,不过审核速度越来越快了,想要体验一下的不妨根据教程中的步骤申请看看,一般一天内就能完成。
1.申请资格
申请资格的过程比较简单,只需要有个github账号即可。
访问https://copilot.github.com/ 看到copilot官网后点击sign up 进行注册
之后会跳转到如下页面,如果没有登录会提示sign in to join waitlist 需要登录github,如果已经登录则会让你授权去加入等待队伍。
点击join the waitlist确认后就看到了如下页面,大概意思就是“你已经加入了等待列表了,你不需要做任何事情,我们将在你可能使用的时候通过邮件通知你,确保你的邮箱是最新的”
此时等待大概1天左右就会收到已经激活的邮件(我是等了不到24小时,可能根据他们的审核速度或快或慢)
2.安装插件
如果对github比较熟悉的话可以直接看官方的文档copilot-docs/gettingstarted.md at main · github/copilot-docs · GitHub
首先要确保idea版本必须在2021.2及更高,否则是无法搜索到copilot插件的
进入idea插件市场(mac的路径为 preferences-> pugins-> marketplace)
搜索github copilot 点击install进行安装
安装后即可在Tools里看到对应的github copilot。
此时还无法使用,因为需要关联到你的github账号。点击Tools->GitHub Copilot ->Login to GitHub
可以看到你的设备code,点击Copy and Open
会打开copilot的激活页面,输入你的设备码(应该已经自动复制好了,直接粘贴就可以)。输入完成后点击进入授权页(要保证当前你的github账号已经成功申请到了资格)
点击Authorize GitHub Copilot即可激活成功
此时已经成功连接了,idea中会展示同意使用的弹窗(如果这个弹窗是要求你加入waitlist证明的你的github账号还没有激活使用资格,请参考上面如何申请资格)
点击Agree后就可以看到成功登录的弹窗了。此时就可以使用了!
3.使用Copilot
登录成功后就自动开启了copilot。
下面先看一下快捷键。如果想修改快捷键请参考: the configuration guide.
- 允许当前的建议:
Tab
. - 取消当前的建议:
Esc
. - 显示下一个建议:
Alt + ]
orOption + ]
. - 显示上一个建议:
Alt + [
orOption + [
. - 展示建议:
Alt + \
orOption + \
. - 打开Copliot面板 (拥有10条建议供选择):
Alt + Enter
orOption + Enter
然后选择 "Open Copilot".
然后就可以体验了。我们以自动生成堆排序为例子展示一下
以下是自动生成的代码,比较惊艳的是连main方法都生成好了
public class TestCopilot {
// 堆排序
public static void heapSort(int[] a) {
// 建堆
for (int i = a.length / 2 - 1; i >= 0; i--) {
heapAdjust(a, i, a.length);
}
// 堆排序
for (int i = a.length - 1; i > 0; i--) {
swap(a, 0, i);
heapAdjust(a, 0, i);
}
}
private static void swap(int[] a, int i, int i1) {
int temp = a[i];
a[i] = a[i1];
a[i1] = temp;
}
private static void heapAdjust(int[] a, int i, int length) {
int temp = a[i];
int child = 2 * i + 1;
while (child < length) {
if (child + 1 < length && a[child + 1] > a[child]) {
child++;
}
if (temp > a[child]) {
break;
}
a[i] = a[child];
i = child;
child = 2 * i + 1;
}
a[i] = temp;
}
public static void main(String[] args) {
int[] a = {1, 4, 3, 2, 5, 6, 7, 9, 8, 10};
heapSort(a);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
}
个人认为这个代码提示工具虽然强大,但还不能代替程序员,只是个辅助功能。 正如官方所说,copilot的含义是副驾驶,而副驾驶只是帮助驾驶员来提高工作速度,而不能代替机长。毕竟最终的抉择还是要机长来完成的。同时想要驾驭这个插件也要有一定的编程能力,否则是无法判断出生成的代码是否符合要求或者是否存在bug的。
版权归原作者 火锅菠菜 所有, 如有侵权,请联系我们删除。