VS Code 2024 年 7 月更新(1.92 版)全面解析:面板置顶、浏览器配置、扩展更新控制与 PowerShell IntelliSense
VS Code 2024 年 7 月更新(1.92 版)全面解析:面板置顶、浏览器配置、扩展更新控制与 PowerShell IntelliSense
本文基于 vscode-docs 仓库中的 release-notes/v1_92.md(Visual Studio Code July 2024 Release)整理编写,系统梳理 1.92 版本在辅助功能、工作台、编辑器、终端、调试、语言服务、GitHub Copilot、扩展开发与工程基建方面的全部更新。读完本文,你将掌握新增设置项(如 workbench.externalBrowser、terminal.integrated.suggest.runOnEnter、debug.showVariableTypes)的用途与配置方法,理解面板置顶、配置档案覆盖、扩展自动更新控制等新交互,并了解对应的仓库配套文档位置,可直接对照实操。
更新总览
1.92 版本是 2024 年 7 月发布的稳定版,官方同时发布了 1.92.1 与 1.92.2 两个修复更新。本次发布的主要亮点如下:
- 默认浏览器配置:新增
workbench.externalBrowser设置,可指定打开链接所用的浏览器。 - Revert PR:GitHub Pull Requests and Issues 扩展支持为已合并的 PR 一键创建 revert PR。
- 扩展更新体验:更易批量配置扩展的自动更新。
- 覆盖配置文件:可通过 Profiles Editor 覆盖已有配置文件(含默认配置)。
- CSS 中粘贴/拖放文件:快速插入
url()引用。 - 面板置顶:可将 Panel 区域移动到工作台顶部。
- Copilot 升级 GPT-4o:Copilot Chat 从 GPT-4-Turbo 升级到 OpenAI GPT-4o。
提示:若想第一时间体验新功能,可下载每日构建的 Insiders 版本。发布说明全文也可在 VS Code 官方 Updates 页面在线阅读。
辅助功能(Accessibility)
改进的调试体验
1.92 为运行和调试视图与**调试控制台(Debug Console)**新增了辅助功能帮助对话框(accessibility help dialogs)。当任一视图获得焦点时,会提示用户打开辅助帮助对话框,该提示可通过 accessibility.verbosity.debug 设置进行配置。
调试控制台新增可访问视图(Accessible View):运行 Open Accessible View 命令(editor.action.accessibleView),即可逐字符、逐行地检查调试控制台内容。
同时有以下配套改进:
- 设置
debug.autoExpandLazyVariables在**屏幕阅读器优化模式(Screen Reader Optimized Mode)**下自动启用,便于直接读取变量值。 - 在调试控制台中求值表达式后,其值会通过屏幕阅读器向用户播报。
- 开启屏幕阅读器调试时,监视(watch)变量值发生变化会立即播报,由
accessibility.debugWatchVariableAnnouncements设置控制。
关于无障碍功能的更多全局配置(缩放、高对比度主题、键盘导航、无障碍信号等),可参考 docs/configure/accessibility/accessibility.md。
配置键绑定命令
上一里程碑为辅助功能帮助对话框引入了“配置未分配键绑定”的操作,本版本补充了 Configure Assigned Keybindings 命令(editor.action.accessibilityHelpConfigureAssignedKeybindings),形成完整闭环,键盘用户可在帮助对话框内直接配置已分配的键绑定。
工作台(Workbench)
将面板移动到顶部
现在可以把 Panel(默认位于底部,包含终端、输出面板、调试控制台等视图)移动到工作台顶部、编辑器区域上方。这一能力是对原有左、右、底部三种定位方案的补充。按 docs/editing/getting-started/userinterface.md 的说明,Panel 默认位于编辑器区域下方,用于放置输出、调试信息、错误与警告以及集成终端等视图;如今四种方位均可选择。
Profiles Editor 预览
本版本继续打磨 Profiles Editor(配置档案编辑器),使其交互更友好,视觉风格与 Settings Editor 保持一致:
Profiles Editor 目前作为实验性功能提供,需开启 workbench.experimental.enableNewProfilesUI 设置。启用后,可从窗口左下角的设置齿轮图标进入 Profiles Editor。据 docs/editing/getting-started/userinterface.md 的介绍,Profiles 编辑器属于“模态编辑器”之一,默认以居中模态层覆盖在编辑器区域上方。
覆盖已有配置文件
现在可以通过创建同名的新配置文件来覆盖已有配置文件,包括默认配置文件(Default Profile),方便快速重置或替换当前使用的配置组合。
改进的扩展更新体验
本版本对扩展更新流程做了多项改进,核心目标是让用户对扩展自动更新拥有更强的控制力。
批量自动更新所有扩展
扩展视图标题区域的全局自动更新操作被改为两个明确动作:Enable Auto Update for All Extensions(启用全部扩展的自动更新)与 Disable Auto Update for All Extensions(禁用全部扩展的自动更新),可一键批量开关:
单个扩展的自动更新
单个扩展的自动更新开关现在始终可见,无需展开菜单即可直接启用或禁用该扩展的自动更新:
VSIX 安装的扩展默认禁用自动更新
通过 VSIX 安装的扩展,其自动更新默认被禁用,从而保证你始终使用自己安装的那个版本,不会被静默升级。这一点与 docs/configure/extensions/extension-marketplace.md 中的说明一致:从 VSIX 安装扩展时自动更新默认关闭。
更新无代码扩展需用户同意
当把一个不含可执行代码的已装扩展版本更新为包含可执行代码的版本时,现在要求用户明确同意。这给了你审查此类更新的机会。点击 Review 按钮会在浏览器中打开该扩展的变更日志或扩展仓库,审阅变更后再决定是否更新。
背景关联:全局的扩展自动更新行为本质上由 extensions.autoUpdate 设置控制(默认开启),更新发布后默认延迟 12 小时(extensions.autoUpdateDelay,单位小时,设为 0 则发布即装)再自动安装;这些设置在 docs/configure/extensions/extension-marketplace.md 中有完整说明,企业管理员还可通过 docs/enterprise/policies.md 中的策略集中管理。
Settings Editor 跳转问题修复
此前在修改某个设置后,Settings Editor 会发生滚动跳转(跳转到另一个设置),且滚动的距离越大跳转越明显。本版本改变了设置修改后的重渲染方式,修复了这一问题。
设置的 URL 处理
VS Code 现在支持 vscode://settings/setting.name 格式的 URL(Insiders 为 vscode-insiders://settings/setting.name,开源版为 code-oss),打开后会直接定位到 Settings Editor 中的指定设置项;未指定设置名时仍会打开 Settings Editor。当发布说明中包含这类设置 URL 的锚点且发布说明在 VS Code 内打开时,会进行特殊处理与渲染(沿用此前引入的 codesetting 特性):
配置打开链接的浏览器
新增 workbench.externalBrowser 设置,用于指定打开链接时使用的浏览器,默认使用操作系统标准浏览器。该设置支持按工作区(per-workspace)配置,并参与 Settings Sync 同步。
配置方式有两种:
- 指定浏览器可执行文件的完整路径;
- 或使用跨设备可移植的浏览器别名:
edge、chrome、firefox。
相关文档佐证:在 docs/debugtest/integrated-browser.md 中,workbench.externalBrowser 被定义为“VS Code 用于打开外部 HTTP 与 HTTPS 链接的浏览器”;在 docs/editing/getting-started/tips-and-tricks.md 中给出了完整示例:
"workbench.externalBrowser": "edge"
拖放文件时不自动打开
此前把文件拖放到资源管理器(Explorer)会自动在编辑器中打开该文件。新增 explorer.autoOpenDroppedFile 设置可切换此行为:默认(true)保持原有行为,设为 false 后拖放文件只复制/移动而不会自动打开。该设置的说明同样收录于 docs/editing/getting-started/userinterface.md:拖入文件默认会打开,可用该设置控制是否自动打开。
编辑器(Editor)
灯泡(Lightbulb)控件改进
灯泡(快速修复提示)控件有时会遮挡编辑器中的代码。本版本引入了改进的启发式规则:当编辑器内没有足够空间时,灯泡会显示在**侧槽(gutter)**中,而不是遮挡代码:
灯泡控件可通过 editor.lightbulb.enabled 设置在编辑器中开启或关闭。
差异编辑器(Diff Editor)
Chat 中更紧凑的差异视图
针对 Chat 视图与内联 Chat 中的 diff 编辑器布局进行了迭代,使其更加紧凑:
源代码管理(Source Control)
传入/传出更改图
本版本启用传入/传出更改(incoming/outgoing changes)的图可视化。该图包含当前分支、当前分支的上游分支以及可选的基础分支(base branch),图的根节点是这些分支的公共祖先。
同时改进了历史项悬停(history item hover):
- 支持多选,可查看同一分支多个历史项的变更;
- 在
...菜单中新增过滤选项,可过滤来自远端/基础分支的历史项; - 新增 fetch、pull、push 等操作。
可通过 scm.showHistoryGraph 设置关闭该图可视化。
终端 shell 集成
源代码管理视图现在会在每次源码控制操作以及针对特定文件/文件夹的文件系统事件后刷新。此前在集成终端执行 git 命令时,命令完成与源代码管理视图刷新之间存在延迟。从本版本起,VS Code 利用终端 shell 集成 API 检测终端内各类 git 命令(如 add、checkout、commit、fetch、pull、push 等)的完成情况并触发视图刷新,显著缩短了延迟。shell 集成的原理、支持列表与手动安装方式可参考 docs/terminal/shell-integration.md。
Notebooks
多单元格注释
Notebook 编辑器现在支持一次切换一个或多个单元格的注释状态:先选中一个或多个单元格容器,再按快捷键 notebook.commentSelectedCells 即可。
终端(Terminal)
新滚动条
终端滚动条外观现在与编辑器滚动条完全一致:
终端中的概览标尺(overview ruler)保持不变:左侧为成功命令、中间为查找结果、右侧为失败命令,但现在与滚动条滑块完美对齐。
调试(Debug)
调试时显示变量类型
开启 debug.showVariableTypes 设置后,调试过程中会在“变量(Variables)”区域显示变量的数据类型:
语言(Languages)
粘贴时更新 Markdown 链接
VS Code 现在可以在 Markdown 文档之间移动文本片段时,自动修复被复制/粘贴文本中的相对路径链接、引用链接以及所有使用相对路径的图片/视频链接,使其在新文档中依然有效。粘贴后若检测到可更新的链接,会出现粘贴小组件,选择 Paste and Update Pasted Links 即可自动修正。
该功能可通过将 markdown.updateLinksOnPaste 设为 false 完全禁用。
CSS 中粘贴和拖放文件
在 CSS 编辑器中,现在只需把图片文件拖放或复制粘贴进去,即可快速插入对应的 url() 引用,无需手动输入路径。
远程开发(Remote Development)
1.92 的远程开发扩展包(Remote Development extensions)支持使用 Dev Container、SSH 远程机器、Remote Tunnels 以及 WSL 作为完整开发环境,本版本亮点包括:
- GPG keyboxd 支持:Dev Containers 的 GPG 转发现在支持本机、容器或二者同时使用 GPG 新的
keyboxd公钥服务。 - 本地端口范围配置:新增
remote.SSH.preferredLocalPortRange设置,可配置本地端口可用范围(适用于本机有端口区间被保留但尚未占用的场景)。端口会按顺序逐一测试直到找到可用端口,若范围内无可用端口则连接终止。
详见本仓库的 remote-release-notes/v1_92.md,其中还包含其他远程改进:
- 改进 Windows ARM 支持:修复了无法连接远端 ARM 版 Windows 机器的缺陷。
- 允许 PTY 分配:新增
remote.SSH.permitPtyAllocation设置,用户可省略生成的ssh连接命令中的-T标志,作为部分连接问题的上报规避方案。 - 默认忽略
curlrc与wgetrc:扩展引导脚本执行curl/wget时默认忽略远端默认配置文件,提高一致性与可靠性;若需恢复旧行为(例如代理配置),可开启remote.SSH.useCurlAndWgetConfigurationFiles。
扩展贡献(Contributions to extensions)
GitHub Copilot
Copilot Chat 升级 GPT-4o
Copilot Chat 视图已从 GPT-4-Turbo 升级到 OpenAI GPT-4o。官方实验表明 GPT-4o 显著增强了 Copilot 的编码能力,能直接在编辑器中提供更快、更准确、更高质量的代码与解释。
聊天中的公共代码匹配
对于组织订阅与个人订阅,可以允许 Copilot 返回与 GitHub.com 上公开代码可能匹配的结果(代码补全此前已支持并展示匹配详情)。本版本正逐步向 Copilot Chat 用户开放此能力:启用后,响应末尾可能出现 View matches 链接,点击后编辑器会打开并展示匹配代码引用的详细信息:
聊天请求中的附件
Copilot Chat 支持通过 Attach Context 命令(workbench.action.chat.attachContext)为聊天请求添加显式附件。这些附件现在会随请求一同渲染在聊天历史中,点击某个文件附件会在编辑器中打开对应文件与范围:
此外,当体积较大的显式附件超出上下文窗口而被部分或完全省略时,现在会有更清晰的提示:
/new 命令改进
/new 斜杠命令得到更新,支持快速生成单个文件。创建文件或项目时可通过聊天变量(如 #selection)提供额外上下文;同时 /new 支持把生成的文件与文件夹保存到已有工作区中:
从 Chat 中调用 VS Code 命令
@vscode 聊天参与者新增斜杠命令 /runCommand,可搜索并执行 VS Code 核心命令。例如在 Chat 中切换开发者工具(Developer Tools):
该命令可通过 github.copilot.chat.runCommand.enabled 设置启用。
Python
使用 python-environment-tools 改进环境发现
上一版本公布的 python-environment-tools 环境发现机制 重构了 Python 环境发现基础设施,重点提升性能:减少执行 python 二进制探测信息的需求。本版本开始以实验形式逐步开放该增强,感兴趣的用户可在 User 的 settings.json 中设置:
"python.locator": "native"
然后重载 VS Code 窗口即可试用。更多细节可关注 python-environment-tools 仓库的持续工作并提交反馈。
原生 REPL 显示执行状态
实验性的原生 REPL(开启 "python.REPL.sendToNativeREPL": true)现在会根据执行结果显示成功/失败 UI,与 Jupyter 单元格中的表现类似;同时优化了无输出单元格不再显示空行。
源码中的内联变量值
Python 调试器扩展引入了 Inline Values 功能:调试会话期间,可在编辑器中对应代码行的旁边直接查看变量值,无需悬停变量或查看“运行和调试”视图中的变量区,方便快速了解程序状态:
开启方法:在 User 设置中把 debugpy.showPythonInlineValues 设为 true:
"debugpy.showPythonInlineValues": true
注意:该功能目前处于探索阶段,仍在持续改进中,欢迎在 vscode-python-debugger 仓库提交反馈。
改进的 Debug Welcome 视图
Debug Welcome 视图现在在编辑器打开 Python 文件时,会显示一个按钮,可快速访问自动 Python 配置。
GitHub Pull Requests and Issues
GitHub Pull Requests 扩展(用于创建、管理、审查 PR 与 issue)新增能力:
- 对已合并的 PR,可在其 PR 描述中使用 Revert 按钮一键创建 revert PR;
- 分支已被删除的 PR 现在仍可在 Pull Requests 视图中查看;
- 即使同时 checkout 了多个 PR,Open Pull Request on GitHub.com 操作也会显示。
扩展 0.94.0 版本的其他亮点可查看其官方 CHANGELOG。
扩展作者(Extension authoring)
网络代理的基本认证
使用 Node.js https 模块的扩展,现在可以使用需要基本认证(basic authentication)的网络代理。
预览功能(Preview Features)
真正的内联差异(True inline diffs)
本版本引入 diffEditor.experimental.useTrueInlineView 设置(默认关闭)。启用后,当使用内联视图时,单行变更会以内联方式渲染:
未开启实验标志时的默认内联视图如下:
该功能为实验性质,未来可能会有变化。
VS Code 原生 PowerShell IntelliSense
VS Code 原生的 PowerShell IntelliSense 实验功能在本版本获得显著改进。在 Windows 或 macOS 上启用方式:
"terminal.integrated.suggest.enabled": true
除可靠性大幅提升外,还有以下改进:
补全不再截断:补全现在精确显示所输入的内容而非截断版本。例如搜索目录名时,.\ 会被包含并正确高亮——之前补全 src 只显示 src,现在会显示 .\src。
目录导航补全优化:目录名现在带尾部 \ 或 /,补全后会自动刷新该目录的补全列表。
配置 Enter 行为:新增 terminal.integrated.suggest.runOnEnter 设置,可配置按 Enter 时在满足特定条件下直接运行命令,可选值如下:
| 值 | 行为 |
|---|---|
"always" |
始终在 Enter 时运行 |
"exactMatch" |
建议被完整输入时在 Enter 时运行 |
"exactMatchIgnoreExtension"(默认) |
建议被完整输入、或文件未含扩展名时在 Enter 时运行 |
"never"(旧行为) |
永不因 Enter 运行 |
这个改动对保持既有肌肉记忆很重要:多数场景下按键序列与未启用该功能时相同。典型示例是执行 cd ..——此前需要输入 cd ..<enter><enter>,现在只需一次 Enter。
文件补全改进:文件补全现在按“文件名长度升序 → 文件名按字母序 → 文件扩展名按字母序”排序;作为命令(而非参数)运行的文件补全还会根据扩展名与当前操作系统获得额外加权,例如 Windows 下 .ps1、.bat、.cmd 文件会排得更靠前。这些改动既提升首条建议的相关性,也通过更贴近原生 PowerShell 的 Tab 补全行为保护肌肉记忆——例如在 VS Code 代码库的 Windows 环境下,./sc<tab>/c<enter> 即可补全并运行 ./scripts/code.bat。
全局补全缓存:命令的全局补全会跨会话缓存,显著提升 shell 启动性能,并修复了重连终端补全失效的问题。需要刷新缓存时可运行 Terminal: Clear Suggest Cache 命令。官方在 Intel i7-12700KF 上实测,shell 集成激活时间从约 600ms 降至约 50ms。
PowerShell 内置终端补全:现在内置 git 补全(基于 posh-git 项目,并做了通用性与 VS Code 专项改进),支持子命令(如 branch)补全并可立即补全刚创建的分支;还包含别名展开状态展示、分支/标签/stash/remote 的 git 专属图标、子命令右侧说明等。同时内置了 code 与 code-insiders 的基础补全(后续版本会继续完善)。若与其它 PowerShell 模块的补全冲突,可用如下设置关闭:
"terminal.integrated.suggest.builtinCompletions": {
"pwshCode": false,
"pwshGit": false
}
终端 IntelliSense 的完整设置族(quickSuggestions、suggestOnTriggerCharacters、selectionMode、insertTrailingSpace 等)与全局补全缓存的说明,可参见 docs/terminal/shell-integration.md。
TypeScript 5.6 支持
本版本加入对即将发布的 TypeScript 5.6 的支持。想提前试用 TypeScript 5.6 预览构建,可安装 TypeScript Nightly 扩展。
拟议 API(Proposed APIs)
QuickInputButtonLocation:在输入框右侧显示按钮
本版本在 QuickInputButton 上引入拟议 API,允许扩展选择按钮的渲染位置:
Title:在快速选择器的标题栏渲染按钮。这是默认行为,保持现有按钮行为。Inline:在输入框右侧渲染按钮。适用于不使用标题栏但希望展示按钮的场景。
该能力已被 Git 扩展的 Create branch 输入框采用(可通过 git.branchRandomName.dictionary 设置启用)。
测试增强(Testing Enhancements)
三个正在开发中的测试相关拟议 API:
- 代码与测试关联:允许扩展将代码与测试双向关联,用户可互相跳转,并让 Run Tests at Cursor 等操作在实现代码中同样生效。
- 测试失败中的调用栈:允许将丰富的调用栈与单元测试失败关联,让用户一眼看到失败前的代码路径。
- 可归属的测试覆盖率:允许按测试归属覆盖率,让用户查看哪些测试运行了哪些代码,并可过滤编辑器内与 Test Coverage 视图中的覆盖率显示。
搜索 API(Search APIs)
三个搜索相关拟议 API 正在收尾:
FindTextInFiles:使用 VS Code 文本搜索在工作区文件中查找文本。FileSearchProvider:为无法用现有搜索功能正常检索的自定义文件方案提供文件搜索结果,例如在虚拟文件系统中通过 Quick Open 搜索时展示扩展提供的结果。TextSearchProvider:与FileSearchProvider类似,但面向文本搜索结果,例如在虚拟文件系统中通过 Search 视图搜索时展示扩展提供的结果。
同时正在重构 workspace.findFiles API:新版本将支持更多选项并更清晰地处理排除选项,现有函数签名在重构后仍可使用。各 API 的关系如下:
| 使用 API 查找 | 使用 API 提供结果 | |
|---|---|---|
| 针对文件 | FindFiles | FileSearchProvider |
| 针对文件中的文本 | FindTextInFiles | TextSearchProvider |
网站(Website)
VS Code 官网进行了设计刷新,并新增浅色/深色主题支持:
新设计默认跟随系统主题(浅色或深色),也可通过右上角的太阳/月亮图标手动切换:
工程(Engineering)
Markdown 语言服务器迁移到独立仓库
支撑 VS Code 内置 Markdown IntelliSense 的语言服务器已迁移到独立仓库。此前该项目从 VS Code 主仓库的子文件夹发布,迁移后更便于社区贡献。项目在 npm 上的发布名保持不变:vscode-markdown-languageserver。
VS Code 采用 ESM 的进展
本版本重新启动 VS Code 核心的 ESM 化工作,未来目标是使用 ECMAScript Modules(ESM)加载并彻底移除 AMD。这是跨多个里程碑的工程,将整体现代化代码加载与打包方式。
xterm.js 依赖 VS Code
终端新滚动条背后有大量工程工作:VS Code 终端基于 xterm.js 开源项目构建,其下一个版本将携带 VS Code 代码库的一小部分(base/ 文件夹的一部分),形成双向依赖。
Electron 30 更新
稳定版发布渠道升级到 Electron 30,包含 Chromium 124.0.6367.243 与 Node.js 20.14.0。
重要破坏性变更提示(Windows):此 Electron 更新所带的 Node 版本包含一个破坏性变更(针对 CVE 的修复),影响在 Windows 上通过 child_process.spawn 且未启用 shell 选项时执行 .bat 或 .cmd 文件的场景。受影响时会在 Windows 上遇到 EINVAL 异常。请遵循 Node.js 官方“在 Windows 上生成 .bat 与 .cmd 文件”的指南(使用 shell 选项)。官方已基于源码扫描主动通知可能受影响的扩展作者,并建议扩展作者始终使用 Insiders 版本提前测试以捕获此类变更。
值得注意的修复
- 修复:启用平滑滚动时,终端中按
Ctrl+C不再无法滚动到底部(issue 211199)。
总结
VS Code 1.92 是一次覆盖面很广的常规稳定版发布:工作台层面新增面板置顶、Profiles Editor 实验预览、默认浏览器配置与拖放行为开关;扩展管理层面重构了自动更新控制体系(批量开关、单扩展开关、VSIX 默认不更新、无代码扩展更新需确认);终端与调试层面带来原生 PowerShell IntelliSense 的大幅改进、变量类型显示与更智能的源码控制刷新。对于扩展作者而言,QuickInputButtonLocation、测试与搜索类拟议 API 值得持续跟进。若需回看本文所依据的原始发布说明与远程开发专项说明,可直接查阅仓库中的 release-notes/v1_92.md 与 remote-release-notes/v1_92.md,相关设置项的用户文档可进一步参考 docs/configure/settings.md、docs/terminal/shell-integration.md 与 docs/configure/extensions/extension-marketplace.md。




















