Visual Studio Code 常见问题解答
我们的文档包含一个**常见问题**部分,按特定主题需要。我们在这里捕获了不适合其他主题的项目。
如果您在此处找不到问题的答案,请查看我们之前在 GitHub 上报告的问题和我们的发行说明。
在 VS Code 中开源 AI
我们已宣布将 GitHub Copilot Chat 扩展以 MIT 许可证开源,然后将相关组件引入 VS Code 核心。请阅读我们的博客文章,了解此公告的所有详细信息。
这会影响我当前的 GitHub Copilot 订阅吗?GitHub Copilot 现在免费了吗?
此更改不影响当前的 GitHub Copilot 订阅。要使用 GitHub Copilot,您仍然需要 GitHub 帐户和 GitHub Copilot 订阅的访问权限。
无法通过组织或企业访问 Copilot 的个人开发者可以访问 GitHub Copilot 免费计划(可能适用限制)。如果该计划不满足您的需求,您可以注册 Copilot 付费计划或自带模型密钥。
GitHub Copilot 后端服务也会开源吗?
GitHub Copilot 服务不受影响,将保持闭源。
时间线是怎样的?我什么时候可以为 VS Code 中的 AI 体验做出贡献?
我们计划在未来几个月内实施这些更改。请查看我们的计划项目以获取时间线的详细信息和更新。
我们的目标是让贡献我们的 AI 功能的体验像贡献 VS Code 的任何部分一样简单。作为其中的一部分,我们希望在贡献时能够使用 Copilot 后端服务进行调试和测试。有关如何为 VS Code 贡献的详细信息,请查看 CONTRIBUTING.md 文件。
为什么将 GitHub Copilot 集成到 VS Code 核心仓库中?
自 GitHub Copilot 首次发布以来,人工智能驱动的工具已成为我们编写代码的核心方式。从使用遥测数据中,我们可以看到在 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 和其他功能上的 50/50% 分配上。许多非 AI 功能可能不会总是对用户那么明显,例如性能、安全性、辅助功能、Electron 更新等。
将 AI 功能引入 VS Code 核心仓库会影响 VS Code 的(启动)性能吗?
性能是我们的核心优先事项,我们致力于在集成 AI 功能时保持 VS Code 的性能。此外,如果您在 VS Code 中不启用 AI 功能,将不会运行任何相关的后台进程,从而不会影响性能。
我可以在 VS Code 中禁用 AI 功能吗?
您可以通过在命令面板中选择**隐藏 Copilot** 或在 VS Code 标题栏的 Copilot 菜单中选择**隐藏 Copilot** 来禁用 VS Code 中内置的 AI 功能。
如果我在 VS Code 中禁用 AI 功能,我的数据还会发送给 Microsoft 吗?
不,如果您在 VS Code 中禁用 AI 功能,或者您没有从 VS Code 登录您的 Copilot 订阅,您的数据不会发送到 Copilot 后端服务。了解有关 VS Code 中的遥测和 GitHub Copilot 信任中心的更多信息。
VS Code 在 Copilot 扩展中使用的模型是开源的吗?
不是。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 吗?
Microsoft 已终止对 Windows 7、Windows 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 发行版,建议的替代方案是使用我们的 Web 客户端。如果您想使用桌面版,可以从此处下载 VS Code 1.85 版。根据您的平台,请务必禁用更新以保持在该版本上。一个好的建议是使用 便携模式进行安装。
我能运行 VS Code 的便携版吗?
是的,VS Code 具有便携模式,可让您将设置和数据保存在与安装位置相同的位置,例如在 USB 驱动器上。
遥测和崩溃报告
如何禁用遥测报告
VS Code 收集使用数据并将其发送给 Microsoft,以帮助改进我们的产品和服务。请阅读我们的隐私声明和遥测文档以了解更多信息。
如果您不想将使用数据发送给 Microsoft,可以将 telemetry.telemetryLevel
用户设置设置为 off
。
从 文件 > 首选项 > 设置,搜索 telemetry
,并将**遥测:遥测级别**设置设置为 off
。这将阻止所有来自 VS Code 的遥测事件。
重要提示:VS Code 允许您安装 Microsoft 和第三方扩展。这些扩展可能会收集自己的使用数据,并且不受
telemetry.telemetryLevel
设置的控制。请查阅特定扩展的文档以了解其遥测报告。
如何禁用实验
VS Code 使用实验来尝试新功能或逐步推出它们。我们的实验框架会调用 Microsoft 拥有的服务,因此当遥测被禁用时,它也会被禁用。但是,如果您无论遥测偏好如何都想禁用实验,您可以将 workbench.enableExperiments
用户设置设置为 false
。
从 文件 > 首选项 > 设置中,搜索 experiments
,并取消选中**工作台:启用实验**设置。这将阻止 VS Code 调用服务并选择退出任何正在进行的实验。
如何禁用崩溃报告
VS Code 收集有关发生的任何崩溃的数据,并将其发送给 Microsoft,以帮助改进我们的产品和服务。阅读我们的隐私声明和遥测文档以了解更多信息。
如果您不想向 Microsoft 发送崩溃数据,可以将 telemetry.telemetryLevel
用户设置更改为 off
。
从 文件 > 首选项 > 设置,搜索 telemetry
,并将**遥测:遥测级别**设置设置为 off
。这将阻止来自 VS Code 的所有遥测事件,包括崩溃报告。您需要重新启动 VS Code 才能使设置更改生效。
GDPR 和 VS Code
现在《通用数据保护条例》(GDPR)已生效,我们借此机会重申我们非常重视隐私。这既适用于微软公司,也特别适用于 VS Code 团队。
为了支持 GDPR
- VS Code 产品会通知所有用户,他们可以选择退出遥测数据收集。
- 团队积极审查和分类所有发送的遥测数据(记录在我们的开源代码库中)。
- 对于收集的任何数据(例如崩溃转储),都有有效的保留政策。
您可以在遥测文档中了解更多关于 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
下可用。按语言 ID 本地化的 LICENSE.txt
版本位于 resources\app\licenses
下。
为什么 Visual Studio Code 的许可证与 vscode GitHub 仓库不同?
要了解产品 Visual Studio Code 的许可证为何与开源 vscode GitHub 仓库不同,请参阅 问题 #60,了解详细解释。
vscode
仓库和 Microsoft Visual Studio Code 发行版之间有什么区别?
github.com/microsoft/vscode 仓库(Code - OSS
)是我们开发 Visual Studio Code 产品的地方。我们不仅在此编写代码和处理问题,还发布我们的路线图以及每月迭代和收尾计划。源代码根据标准 MIT 许可证向所有人开放。
Visual Studio Code 是 Code - OSS
仓库的一个发行版,包含 Microsoft 特定的自定义(包括源代码),并根据传统的 Microsoft 产品许可证发布。
有关更多详细信息,请参阅 Visual Studio Code 和 'Code - OSS' 区别文章。
“基于开源构建”是什么意思?
Microsoft Visual Studio Code 是 Microsoft 许可的 'Code - OSS' 发行版,其中包括 Microsoft 专有资产(如图标)和功能(Visual Studio Marketplace 集成、启用远程开发的小方面)。尽管这些附加内容在整体发行版代码库中所占的比例非常小,但由于这些差异,更准确的说法是 Visual Studio Code 是“基于”开源构建的,而不是“是”开源的。有关每个发行版包含内容的更多信息,请参见 Visual Studio Code 和 'Code - OSS' 区别文章。
扩展
所有 VS Code 扩展都是开源的吗?
扩展作者可以自由选择适合其业务需求的许可证。虽然许多扩展作者选择根据开源许可证发布其源代码,但有些扩展,如 Wallaby.js、Google Cloud Code 和 VS Code 远程开发扩展,则使用专有许可证。
在 Microsoft,我们有混合的开源和闭源扩展。对现有专有源代码或库的依赖、与 Microsoft 许可工具或服务交叉的源代码(例如,C# DevKit 扩展使用 Visual Studio 订阅许可模型,请参见许可证),以及 Microsoft 全部的业务模型差异都可能导致扩展选择专有许可证。您可以在Microsoft 扩展许可证文章中找到 Microsoft 贡献的 Visual Studio Code 扩展及其源代码许可证列表。
如何查找扩展的许可证?
大多数扩展的许可证链接都可以在 Marketplace 页面(其“自述文件”)的右侧“**资源**”栏中找到。如果您找不到链接,您可以在扩展的公共仓库中找到许可证,或者通过 Marketplace 的问答部分联系扩展作者。
我可以在 VS Code 之外使用 Microsoft 扩展吗?
不能。虽然 Microsoft 扩展的源代码可能是开源的,但我们不授权将发布到 Visual Studio Marketplace 并从中获取的 Microsoft 或其关联公司的扩展用于 Visual Studio 产品系列之外:Microsoft Visual Studio、Visual Studio Code、GitHub Codespaces、Azure DevOps、Azure DevOps Server 以及我们和 Microsoft 关联公司(如 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,以及我们和 Microsoft 关联公司(如 GitHub, Inc.)提供的后续产品和服务。因此,其他产品,包括那些基于 Code - OSS 仓库分支构建的产品,不允许访问 Visual Studio Marketplace。我们这样做是为了保护生态系统的安全和质量,包括以下措施:
-
扩展在产品的上下文和权限下运行,并且可能包含可执行代码。Marketplace 会审查每个扩展以确保安全,并防止它们执行恶意活动。当您在 Visual Studio 系列产品中安装扩展时,您知道它已通过审查,可以在该上下文中运行。
-
当报告并验证恶意扩展或在扩展依赖项中发现漏洞时,该扩展将从 Marketplace 中删除,添加到黑名单中,并由 VS Code 自动卸载。
-
Microsoft 投入了大量资源来运行、维护和保护这项全球在线服务。Visual Studio 系列产品旨在以安全可靠的方式访问 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”。
以前的版本
您可以在版本发行说明的顶部找到一些发行版下载链接
如果您需要此处未列出的安装类型,可以通过以下 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
您可以使用版本字符串 latest
,如果您想始终下载最新的 VS Code 稳定版本。
Windows 32 位版本
Windows x86 32 位版本在 1.83 版本发布后不再得到积极支持,并且可能存在安全风险。
下载类型 | 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 环境失败
本节仅适用于 macOS 和 Linux 环境。
当 VS Code 从终端启动时(例如,通过 code .
),它可以访问 .bashrc
或 .zshrc
文件中定义的环境设置。这意味着任务或调试目标等功能也可以访问这些设置。
但是,当从平台的 UI 启动时(例如,macOS dock 中的 VS Code 图标),您通常不在 shell 的上下文中运行,并且无法访问这些环境设置。这意味着根据您启动 VS Code 的方式,您可能无法拥有相同的环境。
为了解决这个问题,当通过 UI 手势启动时,VS Code 将启动一个小型进程来运行(或“解析”)在 .bashrc
或 .zshrc
文件中定义的 shell 环境。如果,在可配置的超时(通过 application.shellEnvironmentResolutionTimeout
,默认为 10 秒)之后,shell 环境仍未解析或由于任何其他原因解析失败,VS Code 将中止“解析”进程,在没有 shell 环境设置的情况下启动,并且您将看到类似以下内容的错误
如果错误消息表明解析 shell 环境花费了太长时间,下面的步骤可以帮助您调查可能导致速度变慢的原因。您还可以通过配置 application.shellEnvironmentResolutionTimeout
设置来增加超时。但请记住,增加此值意味着您将不得不等待更长时间才能使用 VS Code 中的某些功能,例如扩展。
如果您看到其他错误,请创建问题以获得帮助。
调查 shell 初始化缓慢
以下概述的过程可以帮助您识别 shell 初始化中哪些部分花费的时间最多
- 打开 shell 的启动文件(例如,在 VS Code 中通过在快速打开中键入
~/.bashrc
或~/.zshrc
(⌘P (Windows, Linux Ctrl+P)))。 - 选择性地注释掉可能长时间运行的操作(如果您发现
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 仓库中提交问题和功能请求。
如果您想联系专业的支持工程师,可以通过 Microsoft 协助支持团队提交工单。