核心知识
原理
开发者引导方向,Copilot帮忙拉车
快捷键
快捷键 | 说明 |
---|---|
Tab | 接受当前建议 |
Esc | 取消当前行的建议 |
Alt + ] | 展示下一个建议 |
Alt + [ | 展示上一条建议 |
Alt + \ | 触发当前行的建议 |
Ctl + Enter | 打开GitHub Copilot建议面板 |
Ctl + Shift + P | GitHub Copilot 指令命令选择 |
基本能力和场景概览
- 核心能力:在光标位置,根据上下文猜想后续的代码
- 上下文(提示词)可以是
- 代码注释
- 一段逻辑代码的开头
- 一个字符/变量/语句
- 生成的内容(代码)可以是
- 完整的函数/功能
- 后续的的代码片段
- 注释
- 核心场景:在光标位置,根据上下文猜想后续的代码
- 生成函数(查询式,命令式),包括单元测试
- 补齐代码,包括字典、DevOps脚本,Shell脚本等
- 生成SQL语句
- 拓展能力
- 结对编程
- 问题答疑,新知识学习
- 协助排查错误、优化代码
场景整理
- Copilot的常见的使用场景
- 编写测试代码,包含各类边界条件验证使用难以记忆关键字编写代码,比如如: HTML/CSS编写
- 示例/测试数据生成
- 编写/不熟悉的复杂算法
- 使用/学习不熟悉的编程语言
- 按常识完善对象字段
- 复杂参数填写和上下文匹配,重复相似的代码片段
- 正则表达式编写
- SQL语句生成
- 各种脚本生成和补齐
- Copilot X的常见的使用场景
- 理解复杂代码并编写文档、注释
- 评审代码,提出改进意见
- 漏洞发现和修复
- 新知识学习
- 代码调试问题排查
- 技术问题沟通
使用技巧
- 打开和当前任务相关的代码文件
- 如果相关的类库没有源码,可以打开元数据信息(metadata)
- 如果没有元数据信息,可以在提示词里描述元数据信息
- 提问的时候给出示例
- 多使用快捷键Ctl+Enter
- 积累自己的提示词库
- 提前思考清楚需要完成的任务的具体步骤和关键逻辑
- Copilot的定位是个更好用的编程工具,而不是代替开发者思考
- 一观察,二思考,三接受,四修改
提示词原则
- 格式要求
- 生成xxx并用逗号分隔
- 生成列表
- 函数名需要以xxx_yyy格式命名
- 控制回复数量
- 给出更多解释,600字
- 生成内容直到抵达上限
- 不多于两个段落/在一句话以内
- 假装和限定角色获得场景
- 假定你是一个数据库专家
- 假设你正在完成xxx任务
- 从现在开始,你就是…
- 重新整理数据
- 重新生成代码,用…函数/类/接口
- 依据上面的代码,考虑xxx条件,生成…
- 限定内容
- 基于给定的内容…
- 在xxxx(一个技术名词)的模块下,…
- 组合流水线
- 生成一个列表
- 对于列表中的每个条目,生成…
- 继续
- 过滤…
- 重新生成输出条目为…
- 将最终内容总结为简短的版本
- 突破个人限制
- 关于…有哪些相关概念和领域需要研究
- 生成和…相关的领域和概念
- 对于给定内容…提示我相关的
- 关于…由浅入深的推荐步骤是…
常见问题
- 推荐代码很少,甚至只有一个起始大括号;或者推荐的代码莫名其妙,怎么办?
- 优化提示词(可以是注释,可以是代码片段)
- 使用快捷键打开GitHub Copilot Panel,查看更多的推荐信息
- 不采取它推荐的内容,继续按您的常规的思路去写代码,写几行之后,Copilot会根据您的输入,逐渐改善推荐的内容,并逐渐达到比较好的推荐效果
- Copilot好像没有响应了,不再提示任何代码,怎么办?
- 检查网络连接是否正常,有必要的时候通过VPN or Proxy连接到github copilot
- 重启IDE
- 检查Copilot控制台的输出,或者查看log信息,查看错误信息,有必要的时候,提交case