首先明确结论:要使 GitHub Copilot 每次生成的代码自动遵循你的编码风格——例如自动添加 JSDoc 注释、使用箭头函数、禁止 var 声明——关键在于将规则固化到提示词模板中,而不是每次在注释中重复要求“请加文档、用 const 和箭头函数、别用 var”。临时指令远不如一次配置到位有效。

在 VSCode 中配置全局提示词前缀
在项目根目录下找到 .vscode/settings.json 文件,若不存在则新建。在 settings.json 中添加 "github.copilot.advanced" 配置项,其内嵌套 "promptPrefix" 字段,该字段的值必须为纯字符串,且不能包含换行符。
该字符串应使用自然语言指令,例如:"Use arrow functions, declare all variables with const, and include JSDoc comments for every exported function."。此后,你编写的每条注释前都会自动附加该前缀,Copilot 实际接收到的提示为“【你的注释】+【前缀】”。这种方法可以确保 AI 始终遵循你的风格要求。
注意:切勿在 promptPrefix 中包含代码示例或具体函数名。 否则 Copilot 可能误以为你在要求它复制特定逻辑,导致输出偏离预期风格。
按文件类型启用差异化提示
方法一:使用 .instructions.md 多文件机制
在项目根目录下创建 .github/instructions/ 目录,并在其中新建多个指令文件,例如 typescript.instructions.md 专门针对 TypeScript 的类型安全与接口规范,python.instructions.md 则强调 PEP8、类型注解(type hints)以及 docstring 格式。
每个文件的顶部用 YAML frontmatter 指定作用范围,例如:
---
applyTo: "**/*.ts"
---
方法二:直接复用已有类型定义锚点
在 .ts 文件顶部注释中显式引用当前模块已导出的接口,例如:// Context: User type is defined as interface User { id: number; name: string; }。此方法比泛泛要求“按 User 结构返回”更可靠——Copilot 能准确理解字段名和类型信息。
为函数级注释注入结构化样例
第一步:在函数签名正上方编写自然语言需求,清晰描述输入与输出的形式。
第二步:紧接着插入 // Example: 行,在其下方用缩进书写一个真实且极简的输入→输出示例,字段名称尽量与项目保持一致。
第三步:若涉及边界情况,则单独一行写入 // Edge case: 并加以说明,例如:// Edge case: when input array is empty, return [] instead of null。
第四步:将光标停留在空行,按 Ctrl+Enter(Windows/Linux)或 Cmd+Enter(macOS)手动触发提示,避免 Copilot 因上下文干扰而忽略样例解析。
请注意:样例必须与当前语言模式相匹配——在 .py 文件中编写 input: [1, 2, 3] → output: [2, 4, 6] 有效,但在 .js 文件中使用 Python 风格的列表字面量会降低识别准确率。
