Foreword
一直听说Copilot已经很成熟,甚至有人没了都不习惯了,所以试一试Copilot
Copilot
https://github.com/settings/copilot
Copilot 是由 Github 提供的AI编码辅助工具,它可以在编码过程中提供基于 AI 学习的编码建议。在很多情况下,只需要有注释或者函数名称,Copilot就可以实例完整的代码。
目前 Copilot 需要支付10美元/月或者100美元/年。首次使用可以试用2个月,按页面提示点击按钮以开通使用权限,当获得开通权限后,就可以在 Github 上使用 Copilot。
目前Copilot可以在VS、VScode、Neovim、JetBrain全家桶上作为插件使用,其他IDE也得要看有没有人写,没有的话就没办法了
购买
首先拿到2个月的免费试用,这必须要绑定信用卡或者paypal才能下一步
VScode+Copilot
我本身不怎么用VScode,不过为了体验Copilot,只能通过这种方式了
安装VScode插件
第一次试用的时候会提示需要登录Github,并且授权
当代码补全消失以后,会出现下面的灰色内容
但是如果代码补全不消失,他会一直不出现
所以可能需要关闭代码补全以后,再用,设置中搜索intelli
然后关闭30个建议提示
对应的Copilot基本没啥设置选项
可能是我测试的是esp-idf的环境,所以Copilot对他学习的比较少?实际写代码提示完全弱于IntelliSense,提示本身就慢几秒,至于演示的那种一下提示很多内容,那更是基本没有,能提醒一个函数名就算不错了。
当我使用Hal作为开头,假装初始化串口,总算获得了超量的代码,只是可惜HAl这都是库已经做好的东西,我为啥还要重写一遍他呢?
或者反过来说,当我需要串口初始化的时候,假装我要写Hal
,后面再改成别的名字,仅仅是为了这么个串口初始化,完全不值当
编写整个文件
实际上编写文件或者根据描述编写代码有点不太行,它本身还是基于搜索的,只是显示结果并且帮你过滤了一下而已
代码预测
可以给他部分代码,让他推断一下后面该写什么内容
对于嵌入式而言,Copilot不是很合适,本身环境就不太兼容,提示也不够好
Pycharm+Copilot
Pycharm这里也是一样,先安装插件,安装完以后需要重启一下
Pycharm这里授权有点麻烦,需要验证设备,输入验证码
授权以后,这里就是这样了
pycharm的选项稍微多了一点
似乎比之前的c或者c++,提示多了一些,至少快了很多,而且明显在我还没输入明显内容的时候,就进行了预测提示
继续测试发现,似乎只对某些关键词会有反应,比如unite test
,某些常用的名称会预测提示更多的内容。
比如这里的open_file
,会直接提示一大串内容出来,甚至有可能他还是对的。
发现这个以后,我重新去VScode下测试,试用相同关键词,可以看到直接给出了一大串c文件的打开,甚至他print还是用esp的输出,我感动哭了,虽然是没啥用的代码。
同理,我使用比较常用的嵌入式相关的函数名,发现完全没有提示,顶多提示我两括号…
回到Pycharm,基本上常用的关键词,都能联想预测一堆内容出来。
但是涉及到某些小众的领域或者平台,就不太行了。
VS+Copilot
这个有点懒的测了,实际上如果是C#开发,C#本身的代码预测,我感觉已经非常不错了,很多情况下可以直接预测一个完整的句子,甚至变量都会自动帮你根据上下文推断替换,而Copilot则多数情况都只会复读…而不会自动增加变量的序列。
所以如果是C#开发,那么自带的代码补全就已经非常好用了。
Cursor
https://www.cursor.so/
Cursor是和OpenAI合作基于GPT4的一个IDE,有点类似VScode,但是它可以帮你写代码,并且质量还可以的那种。
智能生成代码
Ctrl+K
询问代码含义
Ctrl+L
测试
输入的内容是基于esp32的串口读写
,给出来的却是arduino的类似代码
告诉他平台是什么,再看下
这次给出来就合理了
试了一下我的easycon,直接就开始胡扯了,还是太小众了
小众文件测试
这里就有点胡写的意思了,但是看个大概还是可以的
故意刁难
开源应该是搜不到任何dshot和stm32的dma相关源代码的,所以他也只能写出来dma配置,而pwm的配置完全没有
输出到下面就截至了,代码太长了,从给出来的代码来看,依然是一个简单的pwm,而不是dshot
代码讲解
甚至可以勾选一部分代码让他解释一下什么意思
小结
Cursor的响应速度明显快于Copilot,并且由于有GPT4的语义理解的支持,输出的内容也比较靠谱。当然如果没有现成的代码,可能还是会遇到胡扯的情况
关于他底层到底是GPT3还是4,还有点小争议,但是无所谓,反正我又不用。
https://github.com/getcursor/cursor/issues/34
Summary
总结python、java之类的涉及实际业务比较多的,重复度比较高的代码,用Copilot的预测补全,可能确实不错,很多基础代码可以直接写完。但是像是小众一些的,比如嵌入式、插件等等比较小众的领域,Copilot完全不如普通的补全。
也可以让Copilot和自带的智能补全同时工作,从而形成互补,至于他的定价,每月10刀,那估计是赚不了我的钱了
Cursor目前是免费的,IDE比较小,工作起来也非常快速,体验很好,至于是否能用,我的回答其实和Copilot一样,再发展发展吧。
Quote
https://tutorials.tinkink.net/zh-hans/vscode/copilot-usage-and-shortcut.html
https://blog.csdn.net/jiangjunyuan168/article/details/126960128
https://blog.csdn.net/m0_46495862/article/details/128691032
https://zhuanlan.zhihu.com/p/615818924