news 2026/10/10 1:41:44

Visual Studio Code 中的 GitHub Copilot 内联建议:Ghost Text 与 Next Edit Suggestions 完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Visual Studio Code 中的 GitHub Copilot 内联建议:Ghost Text 与 Next Edit Suggestions 完整指南
  • 文档
  • 教程

【免费下载链接】vscode-docs

Public documentation for Visual Studio Code

项目地址:https://gitcode.com/gh_mirrors/vs/vscode-docs
点击查看免费下载

GitHub Copilot 内联建议(Inline Suggestions)是 Visual Studio Code 中最直接的 AI 编程入口:无需打开聊天窗口,在编辑器中边输入边获得由大型语言模型生成的代码补全。本指南以 docs/editing/ai-powered-suggestions.md 为主体,系统讲解 Ghost Text 幽灵文本补全与 Copilot NES(Next Edit Suggestions,下一步编辑建议)两大能力的配置、使用技巧与底层机制,读完即可上手配置并解决实际编码场景中的常见问题。

两种内联建议:Ghost Text 与 Next Edit Suggestions

Copilot 在 Visual Studio Code 中提供两类内联建议,二者都会参考你的编码风格与现有代码:

  • Ghost Text(幽灵文本)建议:在编辑器中开始输入时,Copilot 会在当前光标位置以变暗的ghost text形式给出补全——有时是当前行的补全,有时是整个新代码块。
  • Next Edit Suggestions(Copilot NES):基于你正在进行的编辑,预测你下一步想编辑的位置以及该编辑的内容,既作用于光标处,也作用于代码中更远的位置。

内联建议只是 Visual Studio Code 众多 AI 界面之一,与之并行的还有用于多文件自主任务的 agents、聊天(Chat) 以及 智能操作(Smart Actions)。

前置条件

使用内联建议前需满足:

  • 本机已安装 Visual Studio Code,参考 入门指南 完成设置。
  • 拥有 GitHub Copilot 订阅,参考 设置 GitHub Copilot 完成登录与配置。免费用户可开通 Copilot Free,每月获得一定额度的内联建议与 AI 积分。

从仓库文档可知,部分功能(内联建议、语义搜索、嵌入)依赖 GitHub Copilot 服务,无法通过自带 API Key(BYOK)的本地模型提供,详见 语言模型 FAQ。

Ghost Text 幽灵文本建议

获得你的第一条建议

Copilot 会在你输入时提供变暗的ghost text建议:有时补全当前行,有时给出整块新代码。基本流程:

  1. 打开任意编程语言文件并开始输入,即可看到来自 Copilot 的内联建议。
  2. 按kbstyle(Tab)键接受建议。
  3. 若只想部分接受,可使用kb(editor.action.inlineSuggest.acceptNextWord)快捷键逐词(或逐行)接受建议。

下面的示例展示了 Copilot 如何以ghost text给出calculateDaysBetweenDatesJavaScript 函数的实现建议:

备选建议

对于同一输入,Copilot 可能给出多条备选建议。将鼠标悬停在建议上,即可在多个候选中切换选择:

用代码注释引导生成

除了被动等待建议,你也可以通过代码注释主动给出期望代码的提示。例如指定要使用的算法或设计模式(如 "use recursion"、"use a singleton pattern"),或指定要为类添加哪些方法与属性。

下面的示例展示如何用注释指示 Copilot 生成一个包含属性和方法的 TypeScriptStudent类:

Next Edit Suggestions(Copilot NES)

Ghost Text 擅长自动补全一段代码,但日常编码活动更多是编辑既有代码。编辑往往不是孤立发生的——不同场景下的编辑存在逻辑先后顺序。Next Edit Suggestions(Copilot NES)正是这一方向的演进:根据你正在做的编辑,同时预测下一次编辑的位置与内容,帮助你在流程中保持专注,无需手动翻找文件与引用。

NES 的建议范围可能是一个符号、一整行,也可能跨越多行,取决于潜在改动的规模。你可以在 这里 观看演示视频(配图为 Point 类的 3D 演化示例 point3d.png)。

要启用 Copilot NES,需打开setting(github.copilot.nextEditSuggestions.enabled)设置(默认即为true,参见 AI 设置参考)。

导航与接受编辑建议

  • 使用kbstyle(Tab)键快速导航到建议的代码变更处(无需手动搜索文件或引用),再次按kbstyle(Tab)接受建议。
  • 编辑器 gutter(行号栏)中的箭头用于指示是否存在可用的编辑建议,箭头指向相对当前光标位置的下一处编辑建议所在位置。
  • 悬停箭头可展开编辑建议菜单,其中包含快捷键与设置配置项:

[!IMPORTANT] 如果你是 Visual Studio Code Vim 扩展用户,请使用最新版本的扩展,以避免按键绑定与 NES 产生冲突。

减少编辑建议带来的干扰

默认情况下,编辑建议会以 gutter 箭头 + 编辑器内代码变更的方式同时呈现。若想减少干扰,可:

  • 启用setting(editor.inlineSuggest.edits.showCollapsed)(默认false,见 AI 设置参考):仅在按下kbstyle(Tab)导航到建议或悬停 gutter 箭头时,才在编辑器中显示代码变更。
  • 或者直接悬停 gutter 箭头,在菜单中选择Show Collapsed。

Next Edit Suggestions 典型用例

捕获并纠正错误

  • 简单笔误:Copilot 会建议修复缺失或调换的字母,例如把cont x = 5或conts x = 5修正为const x = 5。

  • 更具挑战的逻辑错误:例如反转的三元表达式:

    或本应使用&&却写成||的比较表达式:

意图变更

  • 与新的意图变更相匹配的后续改动:例如把类从Point改为Point3D时,Copilot 会建议在类定义中增加z变量;接受该改动后,NES 接着建议在距离计算中加入z:

重构

  • 变量重命名:在文件中重命名一次变量,Copilot 会建议在其他位置同步更新;使用新的命名模式时,也会建议后续代码做一致调整。

  • 匹配代码风格:粘贴代码后,Copilot 会建议如何调整其风格以匹配粘贴处的现有代码。

启用或禁用内联建议

可以按语言粒度或全局启用/禁用内联建议:

  • 通过状态栏 Copilot 菜单:选择状态栏中的 Copilot 菜单,勾选或取消勾选启用/禁用内联建议的选项。针对特定语言的禁用选项取决于当前活动编辑器的语言。

  • 通过设置:修改setting(github.copilot.enable)。为每个想启用/禁用的语言添加一条记录;对所有语言统一启用或禁用,则设置*键的值为true或false。仓库中的 AI 设置参考 给出了该设置的默认值:

    { "github.copilot.enable": { "*": true, "plaintext": false, "markdown": false, "scminput": false } }
  • 临时禁用(Snooze):在状态栏 Copilot 菜单中选择Snooze按钮,每次点击使内联建议暂停时间递增五分钟;选择Cancel Snooze恢复建议。

  • 命令方式:也可使用命令面板中的Snooze Inline Suggestions与Cancel Snooze Inline Suggestions命令。

在按流量计费的连接上使用内联建议

当 Visual Studio Code 将网络连接视为计费(metered)连接时,Copilot不会发起新的Ghost Text 或 NES 自动请求;已在进行中的请求会继续完成。

此时仍可显式请求建议:从命令面板运行Trigger Inline Suggestion命令。

该行为仅适用于内置的 GitHub Copilot 提供方,不影响本地或第三方补全提供方的行为。

更换用于生成建议的 AI 模型

不同的大型语言模型(LLM)在训练数据、能力侧重上各不相同。关于如何在 Visual Studio Code 中挑选不同的 AI 模型,可参考 AI 语言模型。

切换用于生成 ghost text 建议的模型:

  1. 从 Visual Studio Code 标题栏的Chat菜单中选择Configure Inline Suggestions...。
  2. 选择Change Completions Model...,然后从列表中选择一个模型。

[!NOTE] 可用模型列表会随时间变化。当没有备选模型时,"更改模型"选项不会出现。

Copilot Business 或 Enterprise 用户需要管理员在 GitHub.com 的 Copilot 策略设置中,通过启用Editor Preview Features为组织开放某些模型。

需要注意:BYOK(自带 API Key)模型只适用于聊天体验与工具类任务,内联建议(代码补全)仍依赖 GitHub Copilot 服务,无法使用本地模型替代,这一点在 语言模型文档 中有明确说明。

使用技巧:上下文的作用

要给出贴切的内联建议,Copilot 会分析编辑器中当前打开的文件,理解上下文并据此生成建议。因此,在使用 Copilot 时,保持相关文件在 Visual Studio Code 中打开有助于 Copilot 更全面地把握项目全貌,从而获得更准确的建议。

设置参考

Ghost Text 建议设置

设置说明默认值(来源:AI 设置参考)
setting(github.copilot.enable)对所有或特定语言启用/禁用内联补全{ "*": true, "plaintext": false, "markdown": false, "scminput": false }
setting(editor.inlineSuggest.fontFamily)配置内联补全的字体"default"
setting(editor.inlineSuggest.showToolbar)启用/禁用内联补全出现的工具栏"onHover"
setting(editor.inlineSuggest.syntaxHighlightingEnabled)启用/禁用内联补全的语法高亮true
setting(editor.inlineSuggest.minShowDelay)显示内联建议前等待的毫秒数0

Next Edit Suggestions 设置

设置说明默认值(来源:AI 设置参考)
setting(github.copilot.nextEditSuggestions.enabled)启用 Copilot NEStrue
setting(editor.inlineSuggest.edits.allowCodeShifting)配置 NES 是否可以通过移动你的代码来展示建议"always"
setting(editor.inlineSuggest.edits.renderSideBySide)配置 NES 是否尽可能并排展示较大的建议"auto"
setting(editor.inlineSuggest.edits.showCollapsed)仅在按Tab导航或悬停 gutter 箭头时显示 NES 代码变更false
setting(github.copilot.nextEditSuggestions.fixes)基于诊断信息(squiggles,如缺失导入)启用 NEStrue

其中setting(editor.inlineSuggest.edits.renderSideBySide)的可选值:

  • auto(默认):视口空间足够时并排显示较大的编辑建议,否则显示在相关代码下方。
  • never:从不并排显示,始终显示在相关代码下方。

setting(github.copilot.nextEditSuggestions.fixes)使 NES 能直接利用编辑器的诊断结果(波浪线错误提示)生成修复建议,例如补全缺失的 import——这是将静态检查结果与 AI 建议打通的关键设置。

以上设置均可在用户级或工作区级配置,相关默认值可参考 docs/agents/reference/ai-settings.md 中的完整清单;语言标识符的写法可参考 语言标识符文档。更多关于配额监控、额度耗尽处理与开关内联建议的 FAQ,参见 Agent 排障 FAQ。

下一步

  • 通过 Quickstart 快速了解 Visual Studio Code 中 AI 的关键能力。
  • 使用 Visual Studio Code 中的聊天 进行 AI 对话。
  • 了解 智能操作(Smart Actions) 等其他 AI 界面。
  • 文档
  • 教程

【免费下载链接】vscode-docs

Public documentation for Visual Studio Code

项目地址:https://gitcode.com/gh_mirrors/vs/vscode-docs
点击查看免费下载
上一篇:为什么选择Ideogram 4 TurboTime LoRA?5大优势让你告别漫长等待
下一篇:tensorflow-DeepFM源码深度剖析:从TensorFlow实现到算法原理

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/10 1:39:03

JavaWeb开发环境配置全攻略:JDK、Tomcat、MySQL与IDEA避坑指南

最近隔三差五就有人来问我 JAVAWeb 的配置和安装问题,尤其是刚接触 JavaWeb 的同学,项目代码还没写几行,先被环境折腾得怀疑人生。环境变量、JDK、Tomcat、MySQL、IDEA,这几样东西单独拿出来都不难,但凑到一起就会冒出…

作者头像 李华
网站建设 2026/10/10 1:38:47

ruoyi-vue-pro SQL脚本导入避坑指南:从建表到Flyway迁移

简介:这份资源是芋道 ruoyi-vue-pro 企业级快速开发平台的配套数据库脚本合集,面向使用 Spring Boot Vue 前后端分离架构进行中大型系统开发的 Java 工程师、数据库管理员及二次开发人员,帮助其快速搭建项目数据库结构、理解业务数据模型。压…

作者头像 李华
网站建设 2026/10/10 1:37:59

tiny-dnn 导入 Caffe 训练模型:caffe_converter 示例完整解析

人工智能深度学习嵌入式 【免费下载链接】tiny-dnn header only, dependency-free deep learning framework in C14 项目地址: https://gitcode.com/gh_mirrors/ti/tiny-dnn 点击查看 免费下载 导读 tiny-dnn 是一个 header-only、无第三方依赖的 C14 深度学习框架…

作者头像 李华