Skip to content

核心知识

原理

开发者引导方向,Copilot帮忙拉车

快捷键

快捷键说明
Tab接受当前建议
Esc取消当前行的建议
Alt + ]展示下一个建议
Alt + [展示上一条建议
Alt + \触发当前行的建议
Ctl + Enter打开GitHub Copilot建议面板
Ctl + Shift + PGitHub 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

效果演示

点击查看效果演示