1 GitHub Copilot介绍
GitHub Copilot 由 GitHub 和 OpenAI 共同开发的人工智能代码辅助工具,可自动地生成高质量代码片段、上下文信息等。通过自然语言处理和机器学习技术,通过分析程序员编写的代码、注释和上下文信息,自动生成代码,减轻程序员的工作量,节省开发者的时间和精力。
2 支持IDE
- Visual Studio Code
- IDEA
- …
支持目前主流的多种编程语言:
- Python
- Java
- JavaScript
- Go
- TypeScript …
3 使用前提
- GitHub账号
- 科学上网环境
4 注册 Copilot
打开浏览器,登录Github账号后,申请注册:
https://github.com/github-copilot/free_signup
Copilot 需要付费使用,普通用户有30天试用期,但
4.1 学生认证
针对开源作者、学生、老师免费,如tb买的学生认证25块钱一年,含office正版激活/IDEA 全家桶正版激活等。
如满足免费使用条件的界面:
用过了的界面:
4.2 信用卡方式注册
5 安装插件和配置
5.1 IDEA
Preferences -> Plugins,搜索插件“GitHub Copilot” 安装
安装后重启IDEA。右下角会多一个copilot 的logo:
点击,需要你登录GitHub:
登录成功:
然后页面变成:
来到购买页面 https://github.com/settings/copilot:
https://github.com/github-copilot/signup:
填写信息:
支付信息:
联系信息:
授权信息:
成功,准备使用!https://github.com/github-copilot/signup/settings:
5.2 VS Code
搜索“Copilot”安装:
重启,登录 GitHub 帐户进行身份验证。
6 Copilot Chat
7 代码提示
Copilot 会根据上下文和语法规则,自动提示一些可能的代码片段。用 Copilot 提示的代码,只需“Tab”键即可将其插入当前光标。
如在IDEA中使用Copilot,登录成功后就可以直接在编辑器窗口使用。如写一个邮箱校验函数,检查邮箱格式是否合法,直接点击右侧的Copilot机器人,就会弹出几个备选方案,双击 Accept solution 就可以把代码写入到文件中。
再比如果想写一个判断是否为整数的函数,只要把函数名写上(甚至只要写一半),Copilot就会自动提示,此时只要按Tab键,就可以补全代码,注意灰色部分是它给我的建议。
8 快捷键
- 接受内联代码建议
Tab
- 关闭内联代码建议
Esc
- 显示下一个建议
Alt + ]
- 显示上一个建议
Alt + [
- 触发建议
Alt + \
- 在右侧窗口中显示十个建议
Ctrl + Enter
9 Copilot 的优点与缺点
9.1 优点
- 生成代码速度快:Copilot 使用先进的自然语言处理技术和机器学习算法,可以在几乎瞬间生成高质量的代码片段,节省开发者的时间和精力
- 提高代码质量:由于 Copilot 生成的代码是基于机器学习模型的,它可以避免一些常见的错误,从而提高代码质量
- 适应多种编程语言:Copilot 可以适应多种编程语言和框架,包括 Python、JavaScript、Ruby 等,为开发者提供了更多的选择
- 可定制性强:Copilot 允许开发者自定义其提示行为,例如指定要使用的语言和框架、添加自定义代码片段和快捷键等
- 不断学习进步:Copilot 是基于机器学习技术的,可以不断学习进步,提高其生成代码的准确性和质量
9.2 缺点
- 科学上网
- 有时会生成错误的代码:Copilot 生成的代码并不总是完全正确,有时需要开发者自己对其进行修改和调整
- 安全性问题:由于 Copilot 是基于机器学习技术的,因此可能会存在一些安全性问题,例如泄漏敏感信息等
- 不支持所有编程语言和框架:尽管 Copilot 可以适应多种编程语言和框架,但仍有一些不支持的编程语言和框架
10 总结
GitHub Copilot 是一款非常有用的代码提示工具,可以帮助开发者更快速、更高效地编写代码。它具有许多优点,例如生成代码速度快、提高代码质量、适应多种编程语言和框架等,但仍存在一些限制,例如有时会生成错误的代码。因此,在使用 Copilot 时,开发者需要根据实际情况权衡其优缺点,以便更好地使用这个工具。
GitHub Copilot 官网文档:
https://docs.github.com/zh/copilot
当然,GitHub Copilot 不仅仅能够帮你生成代码片段,也可帮你生成测试等。GitHub Copilot 公开课地址:
http://gk.link/a/11ZDr