GitHub Copilot CLI终端两种工作模式教程第7讲:交互式对话与非交互式单命令用法技巧



上一讲我们把 Copilot CLI 装好、登录完毕,在终端里问出了第一句话。但你可能已经发现:在终端里跟 AI 对话,跟编辑器里的 Chat 面板感觉不太一样。编辑器有面板有按钮,终端里就一个光标,怎么用才能高效?

 

 

官方文档链接(建议收藏)

  • CLI 使用总览:https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/overview
  • CLI 快速入门:https://docs.github.com/en/copilot/how-tos/copilot-cli/cli-getting-started
  • Copilot 文档首页:https://docs.github.com/en/copilot

 

交互式:像跟同事聊天

在项目目录里输入 copilot,进入交互式会话。界面很简洁——一个输入框,你打字,它回答。你可以追问、让它改、让它解释,跟编辑器里的 Chat 体验类似。

几个特别好用的功能:

引用文件:输入 @ 弹出文件列表,选中后 Copilot 把那个文件纳入上下文。比如 @README.md 这个项目的架构是怎样的?,它会先读 README 再回答。

斜杠命令:输入 / 查看所有可用命令。常用的有 /help(帮助)、/usage(查看 token 用量)。/compact 可以手动压缩对话历史,释放上下文空间。

个人见解:最容易忽略的是 /usage 和 /context。当你聊了很久、Copilot 回答开始变慢或"忘事"的时候,多半是上下文快满了。快到 95% 时它会自动压缩,但你也可以手动 /compact 提前释放。我踩过的坑是聊了半小时没压缩,结果它把关键信息"忘"了。

 

非交互式:一行命令搞定

有时候你不需要聊天,就想快速得到一个答案然后继续干活。用 -p 参数直接传提问:

copilot -p "Git 里怎么把另一个分支的 commit 摘过来?"

Copilot 直接输出回答然后退出,不需要进入交互界面。如果想把输出喂给其他命令,加 -s 参数:copilot -sp "列出大于 100MB 的文件",输出干干净净,可以直接管道。

个人见解:非交互模式是我用得最多的方式。日常碰到小问题——"tar 参数什么意思"、"awk 怎么取第二列"——一行 copilot -p 就解决了,不用打断工作流切浏览器。

 

进阶:代理与自定义

CLI 的能力不止问答。交互模式里用 /agent 调用自定义代理,让 Copilot 以特定角色执行任务。用 /mcp add 添加 MCP 服务器连接外部工具。

如果想让 Copilot 始终以某种风格回答,可以在项目里放 .github/copilot-instructions.md 写自定义指令,每次启动都会读取。

个人见解:自定义指令被严重低估了。我在每个项目里都放一个指令文件,写上"回答用中文"、"代码注释用英文"之类的偏好,不管用哪种模式 Copilot 都会自动遵守。

 

跟做清单

  • [ ] 在终端里输入 copilot,进入交互模式
  • [ ] 输入 / 查看斜杠命令列表
  • [ ] 用 @ 引用一个项目文件,向 Copilot 提问
  • [ ] 输入 /usage 查看当前 token 用量
  • [ ] 退出交互模式,用 copilot -p "你的问题" 试试非交互模式
  • [ ] 加 -s 参数再试一次,观察输出差异
  • [ ] 在项目根目录创建 .github/copilot-instructions.md,写一条偏好