尝试以扩展 VS Code 中的代理模式!

Visual Studio Code 常见问题解答

我们的文档会根据特定主题的需要,包含一个常见问题部分。我们在此处收录了不适合其他主题的项目。

如果在此处没有找到您问题的答案,请查看我们之前在 GitHub 上报告的问题和我们的发行说明

在 VS Code 中开源 AI

我们已在 MIT 许可下开源了 GitHub Copilot Chat 扩展,并正在将相关组件引入 VS Code 核心。请在我们的公告博客文章第一个里程碑更新中阅读所有详细信息。

这是否会影响我当前的 GitHub Copilot 订阅?GitHub Copilot 现在免费了吗?

此更改不影响当前的 GitHub Copilot 订阅。要使用 GitHub Copilot,您仍需要一个 GitHub 帐户,并有权访问 GitHub Copilot 订阅。

无法通过组织或企业访问 Copilot 的个人开发者可以访问GitHub Copilot 免费计划可能存在限制)。如果该计划无法满足您的需求,您可以注册 Copilot 付费计划或携带您自己的模型密钥

GitHub Copilot 后端服务也会开源吗?

GitHub Copilot 服务不受影响,将保持闭源。

时间表是怎样的?我什么时候可以为 VS Code 中的 AI 体验做出贡献?

我们已经完成了此过程的第一步,即开源 GitHub Copilot Chat 扩展。源代码可在 microsoft/vscode-copilot-chat 存储库中找到。

在接下来的几个月中,我们将把 Copilot Chat 扩展的相关组件引入核心 VS Code 存储库。请查看我们的计划项以获取有关时间表的详细信息和更新。

我们的目标是使为我们的 AI 功能做贡献的体验与为 VS Code 任何部分做贡献一样简单。作为此目标的一部分,我们希望在贡献时可以使用 Copilot 后端服务进行调试和测试。请查看 CONTRIBUTING.md 文件以获取有关如何贡献的详细信息。

为什么将 GitHub Copilot 集成到核心 VS Code 存储库中?

自 GitHub Copilot 首次发布以来,很明显,AI 驱动的工具是我们编写代码的核心。从使用遥测数据中,我们可以看到,在 VS Code 中实际使用 AI 功能的用户比使用调试或测试等其他功能的用户还要多。

将 AI 功能作为 VS Code 的核心部分,再次肯定了我们的信念:开放式工作可以为我们的用户带来更好的产品,并促进一个多样化的扩展生态系统。

我是一名扩展作者。我将受到怎样的影响?

我们维护稳定 API 的向后兼容性。您不应期望您的扩展受到任何影响。我们会根据扩展作者的反馈不断演进和扩展 VS Code 扩展 API。如果您需要额外的 API 来使您的扩展成功,我们很乐意听取您的意见——请在 microsoft/vscode 仓库中提交 API 请求。

我已经在 VS Code 中使用其他 AI 编码扩展(Cline、Roo Code 等)。这对我有什么影响?

您可以继续在 VS Code 中使用这些扩展!我们很高兴社区正在构建扩展以改善 VS Code 的开发者体验。为了改善其他 AI 扩展的体验,我们正在不断添加 API,例如用于直接从扩展调用语言模型的语言模型 API、用于与语言模型工具交互并与内置或您自己的代理集成的工具 API,或用于运行和与终端命令交互的Shell 执行 API(对于代理体验尤其有用)。展望未来,我们计划添加更多 API 以满足扩展作者的需求。

这会改变你们收集数据的方式吗?

不,没有任何改变。通过开源 GitHub Copilot Chat,我们完全透明地展示了我们如何收集数据,并使您能够在源代码中验证这一点。了解更多关于VS Code 中的遥测GitHub Copilot 信任中心的信息。

VS Code 团队未来版本中将如何平衡 AI 功能和非 AI 功能的优先级?

我们相信,AI 驱动的工具是我们编写代码的核心。我们既投资于 AI 功能,也投资于改进核心编辑器体验。这也体现在团队工作分配上,AI 与其他功能的工作量比例为 50/50。许多非 AI 功能可能不总是对用户那么明显,例如性能、安全性、可访问性、Electron 更新等。

将 AI 功能引入核心 VS Code 存储库会影响 VS Code 的(启动)性能吗?

性能是我们的核心优先事项,我们致力于在集成 AI 功能的同时保持 VS Code 的性能。此外,如果您未在 VS Code 中启用 AI 功能,则不会运行任何可能影响性能的相关后台进程。

我可以在 VS Code 中禁用 AI 功能吗?

您可以通过在命令面板中选择“隐藏 AI 功能”或从 VS Code 标题栏的 Copilot 菜单中选择“隐藏 AI 功能”来禁用 VS Code 中的内置 AI 功能。

如果您已经安装了 Copilot 扩展,您需要先从扩展视图中卸载 Copilot 和 Copilot Chat 扩展。之后,您就可以禁用 AI 功能。

如果我在 VS Code 中禁用 AI 功能,我的数据还会发送给微软吗?

不,如果您在 VS Code 中禁用 AI 功能或不从 VS Code 登录您的 Copilot 订阅,您的数据将不会发送到 Copilot 后端服务。了解更多关于VS Code 中的遥测GitHub Copilot 信任中心的信息。

VS Code 在 Copilot 扩展中使用的模型是开源(OSS)的吗?

不。GitHub Copilot 使用的模型是单独授权的,这一点没有改变。事实上,这些模型中的大多数来自第三方,如 OpenAI、Anthropic 和 Google……

Visual Studio Code 和 Visual Studio IDE 有什么区别?

Visual Studio Code 是一款精简的代码编辑器,支持调试、任务运行和版本控制等开发操作。它旨在为开发者提供快速编码-构建-调试周期所需的工具,并将更复杂的工作流留给功能更全面的 IDE,例如 Visual Studio IDE

VS Code 是免费的吗?

是的,VS Code 对个人或商业用途免费。详情请参阅产品许可

如果您还没有 Copilot 订阅,您可以通过注册 Copilot 免费计划免费使用 Copilot,并获得每月限量的代码补全和聊天互动。

平台支持

支持哪些操作系统?

VS Code 可在 macOS、Linux 和 Windows 上运行。有关支持的版本,请参阅需求文档。您可以在设置概览中找到更多平台特定的详细信息。

我可以在旧版 Windows 上运行 VS Code 吗?

微软已停止支持并不再为 Windows 7Windows 8 和 Windows 8.1 提供安全更新。从 1.71 版本(2022 年 8 月)开始,VS Code 桌面版不再在 Windows 7 上运行,从 1.80 版本(2023 年 6 月)开始,将不再在 Windows 8 和 8.1 上运行。您需要升级到较新的 Windows 版本才能使用后续版本的 VS Code。

VS Code 将不再为旧版 Windows 提供产品更新或安全修复。VS Code 1.70.3 版本是 Windows 7 用户可用的最后一个版本,而 1.79 版本将是 Windows 8 和 8.1 用户可用的最后一个版本。您可以在 support.microsoft.com 上了解更多关于升级 Windows 版本的信息。

此外,随着 Windows 10 版本 2004 的发布,已停止对 32 位 OEM 的支持。支持 Windows 32 位的最后一个稳定版 VS Code 是 1.83 (2023 年 9 月)。您需要更新到 64 位版本。

我可以在旧版 macOS 上运行 VS Code 吗?

从 1.96 版本(2024 年 11 月)开始,VS Code 桌面版将弃用对 macOS Catalina(10.15 及更早版本)的支持。从 VS Code 1.98 版本(2025 年 2 月)开始,我们将停止在 macOS Catalina(10.15 及更早版本)上更新 VS Code。您需要升级到较新的 macOS 版本才能使用后续版本的 VS Code。

VS Code 将不再在 macOS Catalina(10.15 及更早版本)上提供产品更新或安全修复,VS Code 1.97 版本将是 macOS Catalina(10.15 及更早版本)的最后一个可用版本。您可以在 support.apple.com 了解更多关于升级 macOS 版本的信息。

我可以在旧的 Linux 发行版上运行 VS Code 吗?

从 VS Code 1.86.1 版本(2024年1月)开始,VS Code 桌面版仅与基于 glibc 2.28 或更高版本的 Linux 发行版兼容,例如 Debian 10、RHEL 8 或 Ubuntu 20.04。

如果您无法升级您的 Linux 发行版,推荐的替代方案是使用我们的网页客户端。如果您想使用桌面版,您可以从这里下载 VS Code 1.85 版本。根据您的平台,请确保禁用更新以停留在此版本。一个好的建议是使用便携模式进行安装。

我可以运行 VS Code 的便携版本吗?

是的,VS Code 有一个便携模式,它允许您将设置和数据保存在与安装位置相同的地方,例如在 U 盘上。

遥测和崩溃报告

如何禁用遥测报告

VS Code 收集使用数据并将其发送给微软,以帮助我们改进产品和服务。请阅读我们的隐私声明遥测文档以了解更多信息。

如果您不想将使用数据发送给微软,您可以将 telemetry.telemetryLevel 用户设置设为 off

文件 > 首选项 > 设置,搜索 telemetry,并将遥测:遥测级别设置设为 off。这将使 VS Code 未来不再发送任何遥测事件。

重要提示:VS Code 允许您安装微软和第三方的扩展。这些扩展可能会收集它们自己的使用数据,并且不受 telemetry.telemetryLevel 设置的控制。请查阅特定扩展的文档以了解其遥测报告。

如何禁用实验

VS Code 使用实验来尝试新功能或逐步推出它们。我们的实验框架会调用一个微软拥有的服务,因此当遥测被禁用时,它也会被禁用。但是,如果您想无论遥测偏好如何都禁用实验,您可以将 workbench.enableExperiments 用户设置设为 false

文件 > 首选项 > 设置,搜索 experiments,并取消选中工作台:启用实验设置。这将阻止 VS Code 调用该服务,并退出任何正在进行的实验。

如何禁用崩溃报告

VS Code 收集任何发生崩溃的数据,并将其发送给微软,以帮助我们改进产品和服务。请阅读我们的隐私声明遥测文档以了解更多信息。

如果您不想向微软发送崩溃数据,您可以将 telemetry.telemetryLevel 用户设置更改为 off

文件 > 首选项 > 设置,搜索 telemetry,并将遥测:遥测级别设置设为 off。这将使 VS Code 不再发送任何遥测事件,包括崩溃报告。您需要重启 VS Code 才能使设置更改生效。

GDPR 和 VS Code

现在《通用数据保护条例》(GDPR) 已生效,我们想借此机会重申,我们非常重视隐私。这既适用于作为一家公司的微软,也特别适用于 VS Code 团队。

为了支持 GDPR

  • VS Code 产品会通知所有用户,他们可以选择退出遥测数据收集。
  • 团队会积极审查和分类所有发送的遥测数据(记录在我们的 OSS 代码库中)。
  • 对收集的任何数据,例如崩溃转储,都有有效的数据保留策略。

您可以在遥测文档中了解有关 VS Code 的 GDPR 合规性的更多信息。

VS Code 使用哪些在线服务?

除了崩溃报告和遥测,VS Code 还使用在线服务用于各种其他目的,例如下载产品更新、查找、安装和更新扩展,或在设置编辑器中提供自然语言搜索。您可以在管理在线服务中了解更多信息。

您可以选择打开/关闭使用这些服务的功能。从文件 > 首选项 > 设置,并输入标签 @tag:usesOnlineServices。这将显示所有控制在线服务使用的设置,您可以单独打开或关闭它们。

许可

位置

您可以在 VS Code 安装位置的 resources\app 文件夹下找到 VS Code 的许可证、第三方声明和 Chromium 开源积分列表。VS Code 的 ThirdPartyNotices.txt、Chromium 的 Credits_*.html,以及 VS Code 的英文版 LICENSE.txt 都在 resources\app 下。LICENSE.txt 的本地化版本按语言 ID 存放在 resources\app\licenses 下。

为什么 Visual Studio Code 的许可证与 vscode GitHub 仓库的许可证不同?

要了解为什么 Visual Studio Code 这个产品,与开源的 vscode GitHub 仓库有不同的许可证,请参阅 issue #60 中的详细解释。

vscode 仓库和 Microsoft Visual Studio Code 发行版之间有什么区别?

github.com/microsoft/vscode 仓库 (Code - OSS) 是我们开发 Visual Studio Code 产品的地方。我们不仅在这里编写代码和处理问题,还发布我们的路线图以及每月的迭代和收尾计划。源代码在标准的 MIT 许可证下对所有人开放。

Visual Studio Code 是 Code - OSS 仓库的一个发行版,带有微软特定的定制(包括源代码),并根据传统的微软产品许可证发布。

有关更多详细信息,请参阅 Visual Studio Code 和 'Code - OSS' 之间的差异一文。

“基于开源构建”是什么意思?

Microsoft Visual Studio Code 是一个微软许可'Code - OSS' 发行版,其中包含微软专有资产(如图标)和功能(Visual Studio Marketplace 集成,启用远程开发的小部分内容)。虽然这些添加内容在整个发行版代码库中只占很小一部分,但由于这些差异,说 Visual Studio Code 是“基于”开源构建,比说它“是”开源更为准确。关于每个发行版包含内容的更多信息,可以在 Visual Studio Code 和 'Code - OSS' 之间的差异一文中找到。

扩展

所有的 VS Code 扩展都是开源的吗?

扩展作者可以自由选择适合其业务需求的许可证。虽然许多扩展作者选择在开源许可证下发布其源代码,但一些扩展,如 Wallaby.jsGoogle Cloud CodeVS Code 远程开发扩展,使用专有许可证。

在微软,我们混合使用了开源和闭源扩展。对现有专有源代码或库的依赖、涉及微软许可工具或服务的源代码(例如,C# DevKit 扩展使用 Visual Studio 订阅许可证模型,请参阅许可证),以及整个微软业务模型的差异,都可能导致扩展选择专有许可证。您可以在微软扩展许可证一文中找到微软贡献的 Visual Studio Code 扩展及其源代码许可证的列表。

如何查找扩展的许可证?

大多数扩展都会在其 Marketplace 页面的右侧资源下,提供其许可证的链接(在其“自述”文件中)。如果您没有找到链接,如果扩展的仓库是公开的,您可能会在其中找到许可证,或者您可以通过 Marketplace 的问答部分联系扩展作者。

我可以在 VS Code 之外使用微软的扩展吗?

不可以。虽然微软的扩展源代码可能是开源的,但我们不授权将从 Visual Studio Marketplace 发布和获取的微软或其附属公司的扩展用于 Visual Studio 系列产品之外:Microsoft Visual Studio、Visual Studio Code、GitHub Codespaces、Azure DevOps、Azure DevOps Server,以及我们和微软附属公司(如 GitHub, Inc.)提供的后续产品和服务。我们仅在 Visual Studio 系列产品中构建、测试、部署和支持这些扩展和服务,以确保它们符合我们的安全和质量标准。我们不对其他地方的扩展这样做,包括那些基于 Code - OSS 仓库分支构建的扩展。有关更多信息,请参阅 Visual Studio Marketplace 服务条款中的*条件:Marketplace/NuGet 产品的权利*。

我无法从产品 << 填空 >> 访问 Visual Studio Marketplace,为什么?

我们提供的 Visual Studio Marketplace 仅供 Visual Studio 系列产品使用:Microsoft Visual Studio、Visual Studio Code、GitHub Codespaces、Azure DevOps、Azure DevOps Server,以及我们和微软附属公司(如 GitHub, Inc.)提供的后续产品和服务。因此,包括那些基于 Code - OSS 仓库分支构建的替代产品,是不允许访问 Visual Studio Marketplace 的。我们这样做是为了保护生态系统的安全和质量,包括以下措施

  • 扩展在产品的上下文中以其权限运行,并且可能包含可执行代码。Marketplace 会对每个扩展进行审查以确保安全并防止它们执行恶意活动。当您在 Visual Studio 系列产品中安装扩展时,您知道它已经过审查,可以在该上下文中运行。

  • 当报告并验证了恶意扩展,或在扩展依赖项中发现了漏洞时,该扩展将从 Marketplace 中移除,添加到阻止列表,并由 VS Code 自动卸载。

  • 微软投入大量资源来运行、维护和保护这项全球在线服务。Visual Studio 系列产品被设计为以安全可靠的方式访问 Marketplace,以便在您需要时 Marketplace 可用。

  • 扩展可能与产品深度集成。Marketplace 确保我们维护 API 兼容性,并确保扩展正确使用产品的扩展 API。这有助于确保您安装的扩展在版本更新后能正常工作。

有关此主题的更多详细信息,请参阅 #31168

为什么我应该从 Visual Studio Marketplace 安装扩展?

从 Visual Studio Marketplace 安装扩展比从其他来源安装有许多优势。

  • Visual Studio Marketplace 采用多种机制来保护您免受恶意扩展的侵害,包括恶意软件扫描、动态检测、发布者验证等。当您从其他来源安装扩展时,无法保证该扩展在您的环境中是安全的。

  • 当报告并验证了恶意扩展,或在扩展依赖项中发现了漏洞时,该扩展将从 Marketplace 中移除,添加到*阻止列表*,并由 VS Code 自动卸载。

  • Marketplace 使您能够轻松查找、安装和更新扩展。当有可用更新时,例如因为安全修复,VS Code 会自动安装更新版本。

  • 扩展可能与产品深度集成。Marketplace 确保我们维护 API 兼容性,并确保扩展正确使用产品的扩展 API。这有助于确保您安装的扩展在版本更新后能正常工作。

报告 VS Code 扩展的问题

对于错误、功能请求或联系扩展作者,您应使用 Visual Studio Code Marketplace 中提供的链接,或使用命令面板中的帮助:报告问题。但是,如果存在扩展不遵守我们行为准则的问题,例如包含不雅言辞、色情内容或对用户构成风险,我们有一个电子邮件别名来报告此问题。收到邮件后,我们的 Marketplace 团队将研究适当的行动方案,包括但不限于下架该扩展。

VS Code 版本

如何查找我当前的 VS Code 版本?

您可以在“关于”对话框中找到 VS Code 的版本信息。

在 macOS 上,转到代码 > 关于 Visual Studio Code

在 Windows 和 Linux 上,转到帮助 > 关于

VS Code 的版本是列出的第一个版本号,其格式为 '主版本号.次版本号.修订号',例如 '1.100.0'。

先前发布版本

您可以在版本发行说明的顶部找到一些发行版下载链接

Download links in release notes

如果您需要那里未列出的安装类型,您可以通过以下 URL 手动下载

下载类型 URL
Windows x64 系统安装程序 https://update.code.visualstudio.com/{version}/win32-x64/stable
Windows x64 用户安装程序 https://update.code.visualstudio.com/{version}/win32-x64-user/stable
Windows x64 zip https://update.code.visualstudio.com/{version}/win32-x64-archive/stable
Windows x64 CLI https://update.code.visualstudio.com/{version}/cli-win32-x64/stable
Windows Arm64 系统安装程序 https://update.code.visualstudio.com/{version}/win32-arm64/stable
Windows Arm64 用户安装程序 https://update.code.visualstudio.com/{version}/win32-arm64-user/stable
Windows Arm64 zip https://update.code.visualstudio.com/{version}/win32-arm64-archive/stable
Windows Arm64 CLI https://update.code.visualstudio.com/{version}/cli-win32-arm64/stable
macOS 通用版 https://update.code.visualstudio.com/{version}/darwin-universal/stable
macOS Intel 芯片 https://update.code.visualstudio.com/{version}/darwin/stable
macOS Intel 芯片 CLI https://update.code.visualstudio.com/{version}/cli-darwin-x64/stable
macOS Apple 芯片 https://update.code.visualstudio.com/{version}/darwin-arm64/stable
macOS Apple 芯片 CLI https://update.code.visualstudio.com/{version}/cli-darwin-arm64/stable
Linux x64 https://update.code.visualstudio.com/{version}/linux-x64/stable
Linux x64 debian https://update.code.visualstudio.com/{version}/linux-deb-x64/stable
Linux x64 rpm https://update.code.visualstudio.com/{version}/linux-rpm-x64/stable
Linux x64 snap https://update.code.visualstudio.com/{version}/linux-snap-x64/stable
Linux x64 CLI https://update.code.visualstudio.com/{version}/cli-linux-x64/stable
Linux Arm32 https://update.code.visualstudio.com/{version}/linux-armhf/stable
Linux Arm32 debian https://update.code.visualstudio.com/{version}/linux-deb-armhf/stable
Linux Arm32 rpm https://update.code.visualstudio.com/{version}/linux-rpm-armhf/stable
Linux Arm32 CLI https://update.code.visualstudio.com/{version}/cli-linux-armhf/stable
Linux Arm64 https://update.code.visualstudio.com/{version}/linux-arm64/stable
Linux Arm64 debian https://update.code.visualstudio.com/{version}/linux-deb-arm64/stable
Linux Arm64 rpm https://update.code.visualstudio.com/{version}/linux-rpm-arm64/stable
Linux Arm64 CLI https://update.code.visualstudio.com/{version}/cli-linux-arm64/stable

{version} 占位符替换为您想要的特定版本。例如,要下载 1.83.1 版本的 Linux Arm64 debian,您将使用

https://update.code.visualstudio.com/1.83.1/linux-deb-arm64/stable

如果您希望总是下载最新的 VS Code 稳定版,可以使用版本字符串 latest

Windows 32位版本

在 1.83 版本之后,Windows x86 32位版本已不再积极支持,并可能存在安全风险。

下载类型 URL
Windows x86 系统安装程序 https://update.code.visualstudio.com/{version}/win32/stable
Windows x86 用户安装程序 https://update.code.visualstudio.com/{version}/win32-user/stable
Windows x86 zip https://update.code.visualstudio.com/{version}/win32-archive/stable
Windows x86 CLI https://update.code.visualstudio.com/{version}/cli-win32-ia32/stable

预发布版本

想提前一睹 VS Code 的新功能吗?您可以通过安装“Insiders”构建来试用 VS Code 的预发布版本。Insiders 构建会与您的稳定版 VS Code 并行安装,并具有独立的设置、配置和扩展。Insiders 构建每晚更新,因此您将获得前一天的最新错误修复和功能更新。

要安装 Insiders 构建,请访问 Insiders 下载页面

如何选择退出 VS Code 自动更新?

默认情况下,当发布新更新时,VS Code 会为 macOS 和 Windows 用户设置自动更新。如果您不希望获得自动更新,可以将更新:模式设置从 default 更改为 none

要修改更新模式,请转到文件 > 首选项 > 设置,搜索 update mode 并将设置更改为 none

如果您使用 JSON 编辑器进行设置,请添加以下行

    "update.mode": "none"

您可以通过卸载当前版本,然后安装特定发行说明页面顶部提供的下载来安装先前版本的 VS Code。

注意:在 Linux 上:如果 VS Code 存储库安装正确,那么您的系统包管理器应该会像处理系统上的其他软件包一样处理自动更新。请参阅在 Linux 上安装 VS Code

选择退出扩展更新

默认情况下,当新版本可用时,VS Code 也会自动更新扩展。如果您不希望扩展自动更新,可以在设置编辑器中取消选中扩展:自动更新复选框(⌘, (Windows, Linux Ctrl+,))。

如果您使用 JSON 编辑器修改您的设置,请添加以下行:

    "extensions.autoUpdate": false

在哪里可以找到 Visual Studio Code 的图标?

是否有关于使用图标和名称的指南?

您可以在图标和名称使用指南下载官方 Visual Studio Code 图标并阅读使用指南。

什么是 VS Code 的“工作区”?

VS Code 的“工作区”通常就是您的项目根文件夹。VS Code 使用“工作区”的概念来限定项目配置的范围,例如项目特定的设置以及用于调试任务的配置文件。工作区文件存储在项目根目录的 .vscode 文件夹中。您还可以通过一个名为多根工作区的功能,在 VS Code 工作区中拥有多个根文件夹。

您可以在什么是 VS Code 的“工作区”?一文中了解更多信息。

问题和议题

安装似乎已损坏 [不受支持]

VS Code 会进行后台检查,以检测磁盘上的安装是否已更改,如果已更改,您将在标题栏中看到文本[不受支持]。这样做是因为某些扩展会直接修改(修补)VS Code 产品,这种方式是半永久性的(直到下次更新),这可能会导致难以重现的问题。我们不试图阻止对 VS Code 的修补,但我们希望提高意识,即修补 VS Code 意味着您正在运行一个不受支持的版本。重新安装 VS Code将替换被修改的文件并消除该警告。

如果 VS Code 文件被杀毒软件错误地隔离或删除,您也可能会看到[不受支持]的消息(例如,请参阅问题 #94858)。检查您的杀毒软件设置并重新安装 VS Code 以修复丢失的文件。

解析 shell 环境失败

当 VS Code 从终端启动时(例如,通过 code .),它可以访问您 .bashrc.zshrc 文件中定义的环境设置。这意味着像任务或调试目标这样的功能也可以访问这些设置。

然而,当从您平台的图形用户界面启动时(例如,macOS dock 中的 VS Code 图标),您通常不是在 shell 的上下文中运行,也无法访问这些环境设置。这意味着,根据您启动 VS Code 的方式,您可能没有相同的环境。

为了解决这个问题,当通过 UI 手势启动时,VS Code 会启动一个小进程来运行(或“解析”)您在 .bashrc.zshrc 或 PowerShell 配置文件中定义的 shell 环境。如果在可配置的超时(通过 application.shellEnvironmentResolutionTimeout,默认为 10 秒)后,shell 环境仍未解析或因任何其他原因解析失败,VS Code 将中止“解析”过程,在没有您 shell 环境设置的情况下启动,并且您将看到类似以下的错误:

Shell environment startup error

如果错误消息指示解析您的 shell 环境花费了太长时间,下面的步骤可以帮助您调查可能导致缓慢的原因。您还可以通过配置 application.shellEnvironmentResolutionTimeout 设置来增加超时时间。但请记住,增加此值意味着您将需要等待更长时间才能使用 VS Code 中的某些功能,例如扩展。

如果您看到其他错误,请创建一个议题以获取帮助。

调查 shell 初始化缓慢的问题

下面概述的过程可能有助于您确定 shell 初始化中哪些部分花费的时间最长:

  • 打开您的 shell 启动文件(例如,在 VS Code 中通过在快速打开 (⌘P (Windows, Linux Ctrl+P)) 中输入 ~/.bashrc~/.zshrc)。
  • 选择性地注释掉可能长时间运行的操作(例如,如果您发现有 nvm)。
  • 保存并完全重启 VS Code。
  • 继续注释掉操作,直到错误消失。

注意:虽然 nvm 是一个功能强大且有用的 Node.js 包管理器,但如果在 shell 初始化期间运行,它可能会导致 shell 启动时间变慢。您可以考虑使用包管理器替代品,如 asdf,或在互联网上搜索 nvm 的性能建议。

从终端启动 VS Code

如果修改您的 shell 环境不切实际,您可以通过从一个完全初始化的终端直接启动 VS Code 来避免 VS Code 的解析 shell 环境阶段。

  • 从一个打开的终端输入 code 将会用您上一个工作区启动 VS Code。
  • 输入 code . 将会启动 VS Code 并打开当前文件夹。

VS Code 变为空白?

Visual Studio Code 使用的 Electron shell 对某些 GPU(图形处理单元)硬件加速存在问题。如果 VS Code 显示空白(空)主窗口,您可以尝试在启动 VS Code 时添加 Electron --disable-gpu 命令行开关来禁用 GPU 加速。

code --disable-gpu

如果这是在更新后发生的,删除 GPUCache 目录可以解决此问题。

rm -r ~/.config/Code/GPUCache

VS Code 在打开文件夹后立即变得无响应

当您打开一个文件夹时,VS Code 会搜索典型的项目文件,以便为您提供额外的工具(例如,状态栏中的解决方案选择器以打开解决方案)。如果您打开一个包含大量文件的文件夹,搜索可能会花费大量时间和 CPU 资源,在此期间 VS Code 可能会响应缓慢。我们计划在未来改进这一点,但目前您可以通过 files.exclude 设置将文件夹从资源管理器中排除,这样它们就不会被搜索项目文件:

    "files.exclude": {
        "**/largeFolder": true
    }

技术支持渠道

您可以在 Stack Overflow 上提问和搜索答案,并直接在我们的 GitHub 仓库中提交问题和功能请求。

如果您想联系专业支持工程师,可以向微软协助支持团队提交工单。