扩展市场
Visual Studio Code 开箱即用的功能仅仅是个开始。通过 VS Code 扩展,您可以在您的安装中添加语言、调试器和工具,以支持您的开发工作流。VS Code 丰富的可扩展性模型允许扩展作者直接接入 VS Code 的用户界面,并通过与 VS Code 相同的 API 来贡献功能。本文将解释如何在 Visual Studio Code Marketplace 中查找、安装和管理 VS Code 扩展。
浏览扩展
您可以在 VS Code 内部浏览和安装扩展。通过点击 VS Code 侧边栏活动栏中的扩展图标,或者使用查看:扩展命令(⇧⌘X (Windows、Linux 为 Ctrl+Shift+X)),即可调出扩展视图。
这将向您展示 VS Code Marketplace 上最受欢迎的 VS Code 扩展列表。
列表中的每个扩展都包含简要描述、发布者、下载次数和一个五星评级。您可以选择该扩展项以显示其详情页面,了解更多信息。
如果您的计算机通过代理服务器访问互联网,您需要配置代理服务器。详情请参阅代理服务器支持。
安装扩展
要安装扩展,请选择安装按钮。安装完成后,安装按钮将变为管理齿轮按钮。
扩展与 VS Code 本身具有相同的权限。从 VS Code 1.97 版本开始,当您首次从第三方发布者安装扩展时,VS Code 会显示一个对话框,提示您确认是否信任该扩展发布者。获取更多关于扩展运行时安全以及如何保护自己免受恶意扩展侵害的信息。
如果您想安装特定版本的扩展,请右键单击该扩展并选择安装另一版本。然后,您可以从可用列表中选择一个版本。
当启用设置同步时,您可以在您的多台机器之间共享 VS Code 配置,例如扩展。如果要在安装扩展时不在您的机器间同步,请右键单击该扩展并选择安装(不同步)。
查找并安装扩展
例如,让我们安装流行的 TODO Highlight 扩展。此扩展会高亮显示源代码中的 'TODO:' 和 'FIXME:' 等文本,以便您快速找到未完成的部分。
在扩展视图(⇧⌘X (Windows、Linux 为 Ctrl+Shift+X))的搜索框中输入 'todo',以筛选出标题或元数据中包含 'todo' 的 Marketplace 扩展。您应该会在列表中看到 TODO Highlight 扩展。
每个扩展都由其发布者和扩展 ID 唯一标识。如果您选择 TODO Highlight 扩展,您将看到扩展详情页,其中可以找到扩展 ID,在本例中是 wayou.vscode-todo-highlight
。当有多个名称相似的扩展时,知道扩展 ID 会很有帮助。
选择安装按钮,VS Code 将从 Marketplace 下载并安装该扩展。安装完成后,安装按钮将被替换为一个管理齿轮按钮。
要查看 TODO Highlight 扩展的效果,请打开任何源代码文件并添加文本 'TODO:',您将看到该文本被高亮显示。
TODO Highlight 扩展贡献了TODO-Highlight: 列出高亮注解和TODO-Highlight: 切换高亮这两个命令,您可以在命令面板(⇧⌘P (Windows、Linux 为 Ctrl+Shift+P))中找到它们。TODO-Highlight: 切换高亮命令让您可以快速禁用或启用高亮功能。
该扩展还提供了用于调整其行为的设置,您可以在设置编辑器(⌘, (Windows、Linux 为 Ctrl+,))中找到。例如,您可能希望文本搜索不区分大小写,这时可以取消勾选 Todohighlight: Is Case Sensitive 设置。
如果某个扩展没有提供您想要的功能,您可以随时通过管理按钮的上下文菜单来卸载该扩展。
这只是一个如何安装和使用扩展的例子。VS Code Marketplace 拥有数千个扩展,支持数百种编程语言和任务。从功能齐全的语言支持,如 Java、Python、Go 和 C++,到一些简单的扩展,如创建 GUID、更改颜色主题,或在编辑器中添加虚拟宠物。
扩展详情
在扩展详情页面,您可以阅读扩展的 README 并查看扩展的:
- 功能贡献 - 扩展为 VS Code 添加的功能,例如设置、命令和键盘快捷键、语言语法、调试器等。
- 更新日志 - 扩展仓库的 CHANGELOG(如果可用)。
- 依赖项 - 列出该扩展是否依赖于任何其他扩展。
如果一个扩展是扩展包,扩展包部分将显示安装该包时会同时安装哪些扩展。扩展包将多个独立的扩展捆绑在一起,以便可以一次性轻松安装。
扩展视图过滤器和命令
您可以使用筛选扩展上下文菜单来过滤扩展视图。
有多种过滤器可以显示:
- 可更新的过时扩展列表
- 当前已启用/已禁用的扩展列表
- 根据您的工作区推荐的扩展列表
- 全局热门扩展列表
您可以按安装量、评分、名称、发布日期或更新日期,以升序或降序对扩展列表进行排序。您可以在下面了解更多关于扩展搜索过滤器的信息。
您可以通过 ...
视图和更多操作按钮运行其他扩展视图命令。
通过此上下文菜单,您可以控制扩展更新、启用或禁用所有扩展,以及使用扩展二分查找工具来隔离有问题的扩展行为。
搜索扩展
您可以清除扩展视图顶部的搜索框,然后输入您要查找的扩展、工具或编程语言的名称。
例如,输入“python”会显示一个 Python 语言扩展列表。
如果您知道所要查找扩展的确切标识符,可以使用 @id:
前缀,例如 @id:vue.volar
。此外,要筛选或排序结果,您可以使用下面详述的筛选和排序命令。
安装预发布版本的扩展
扩展发布者可能会提供扩展的预发布版本。要安装预发布版本,请选择安装按钮上的下拉菜单,然后选择安装预发布版本。
管理扩展
VS Code 让管理扩展变得很容易。您可以通过扩展视图、命令面板(命令带有扩展:前缀)或命令行开关来安装、禁用、更新和卸载扩展。
列出已安装的扩展
默认情况下,扩展视图会显示您当前已安装的扩展,以及所有为您推荐的扩展。您可以使用扩展:聚焦于已安装视图命令,该命令可在命令面板(⇧⌘P (Windows、Linux 为 Ctrl+Shift+P))或更多操作 (...
) 下拉菜单 > 视图 > 已安装中找到,以清除搜索框中的任何文本并显示所有已安装扩展的列表,包括那些已被禁用的扩展。
卸载扩展
要卸载扩展,请选择扩展条目右侧的管理齿轮按钮,然后从下拉菜单中选择卸载。这将卸载该扩展并提示您重启扩展主机(重启扩展)。
禁用扩展
如果您不想永久移除某个扩展,可以点击扩展条目右侧的齿轮按钮来临时禁用它。您可以全局禁用一个扩展,也可以只为当前工作区禁用。禁用扩展后,系统会提示您重启扩展主机(重启扩展)。
如果您想快速禁用所有已安装的扩展,可以在命令面板和更多操作 (...
) 下拉菜单中使用禁用所有已安装的扩展命令。
扩展在所有 VS Code 会话中都保持禁用状态,直到您重新启用它们。
启用扩展
同样,如果您禁用了某个扩展(它会出现在列表的已禁用部分,并标记为已禁用),您可以使用下拉菜单中的启用或启用(工作区)命令重新启用它。
在更多操作 (...
) 下拉菜单中也有一个启用所有扩展命令。
扩展自动更新
VS Code 会检查扩展更新并自动安装它们。更新后,系统会提示您重启扩展主机(重启扩展)。
如果您希望手动更新扩展,可以使用为所有扩展禁用自动更新命令或扩展视图中的相应操作来禁用自动更新。您还可以配置 extensions.autoUpdate 设置。使用为所有扩展启用自动更新命令可以重新启用自动更新。
您还可以通过右键单击某个扩展并切换自动更新项来为单个扩展配置自动更新。
如果您不希望 VS Code 检查更新,可以将 extensions.autoCheckUpdates 设置为 false。
手动更新扩展
如果您禁用了扩展自动更新,可以使用显示过期的扩展命令(该命令使用 @updates
过滤器)快速查找扩展更新。这将显示您当前安装的扩展所有可用的更新。
选择过期扩展的更新按钮。更新将被安装,然后您将被提示重启扩展主机(重启扩展)。您也可以使用更新所有扩展命令一次性更新所有过期的扩展。
如果您也禁用了自动检查更新,可以使用检查扩展更新命令来查看哪些扩展可以更新。
推荐的扩展
您可以使用显示推荐的扩展命令查看推荐扩展的列表,该命令会设置 @recommended
过滤器。扩展推荐可以是:
- 工作区推荐 - 由您当前工作区的其他用户推荐。
- 其他推荐 - 根据最近打开的文件推荐。
请参阅下面的部分,了解如何为项目中的其他用户贡献推荐。
忽略推荐
要忽略一个推荐,请选择该扩展项以打开详情页面,然后选择管理齿轮按钮以显示上下文菜单。选择忽略推荐菜单项。被忽略的推荐将不再向您推荐。
配置扩展
VS Code 扩展可能有非常不同的配置和要求。一些扩展向 VS Code 贡献设置,这些设置可以在设置编辑器中修改。其他扩展可能有自己的配置文件。扩展还可能需要安装和设置额外的组件,如编译器、调试器和命令行工具。请查阅扩展的 README(在扩展视图详情页面可见)或访问 VS Code Marketplace 上的扩展页面(在详情页面点击扩展名称)。许多扩展是开源的,并在其 Marketplace 页面上提供了其仓库的链接。
命令行扩展管理
为了更方便地自动化和配置 VS Code,可以从命令行列出、安装和卸载扩展。在识别扩展时,请提供 publisher.extension
形式的完整名称,例如 ms-python.python
。
示例
code --extensions-dir <dir>
Set the root path for extensions.
code --list-extensions
List the installed extensions.
code --show-versions
Show versions of installed extensions, when using --list-extension.
code --install-extension (<extension-id> | <extension-vsix-path>)
Installs an extension.
code --uninstall-extension (<extension-id>)
Uninstalls an extension.
code --enable-proposed-api (<extension-id>)
Enables proposed API features for extensions. Can receive one or more extension IDs to enable individually.
您可以在扩展详情页面的 Marketplace 信息下看到扩展 ID。
扩展视图过滤器
扩展视图的搜索框支持过滤器,以帮助您查找和管理扩展。如果您使用了显示已安装的扩展和显示推荐的扩展命令,您可能已经看到了像 @installed
和 @recommended
这样的过滤器。此外,还有可用的过滤器让您按流行度或评级排序,并按类别(例如“Linters”)和标签(例如“node”)搜索。您可以在扩展搜索框中输入 @
并浏览建议,来查看所有过滤器和排序命令的完整列表。
以下是一些扩展视图过滤器:
@builtin
- 显示 VS Code 自带的扩展。按类型(编程语言、主题等)分组。@deprecated
- 显示已弃用的扩展。@disabled
- 显示已禁用的已安装扩展。@enabled
- 显示已启用的已安装扩展。扩展可以被单独启用/禁用。@featured
- 显示精选扩展。@installed
- 显示已安装的扩展。@popular
- 显示热门扩展。@recentlyPublished
- 显示最近在 Marketplace 上发布的扩展。@recommended
- 显示推荐的扩展。按工作区特定或通用用途分组。@updates
- 显示过时的已安装扩展。Marketplace 上有更新版本可用。@workspaceUnsupported
- 显示此工作区不支持的扩展。@category
- 显示属于指定类别的扩展。以下是一些支持的类别。要查看完整列表,请键入@category
并跟随建议列表中的选项。@category:themes
@category:formatters
@category:linters
@category:snippets
这些过滤器也可以组合使用。例如:使用 @installed @category:themes
查看所有已安装的主题。
如果没有提供过滤器,扩展视图将显示当前已安装和推荐的扩展。
排序
您可以使用 @sort
过滤器对扩展进行排序,该过滤器可以接受以下值:
installs
- 按 Marketplace 安装数降序排序。name
- 按扩展名称的字母顺序排序。publishedDate
- 按扩展发布日期排序。rating
- 按 Marketplace 评级(1-5星)降序排序。updateDate
- 按扩展最后更新日期排序。
类别和标签
扩展可以设置描述其功能的类别和标签。
您可以使用 category:
和 tag:
按类别和标签进行筛选。
支持的类别有:[Azure, 数据科学, 调试器, 教育, 扩展包, 格式化工具, 键盘映射, 语言包, Linter, 机器学习, Notebooks, 其他, 编程语言, SCM 提供程序, 代码片段, 测试, 主题, 可视化]
。您可以在扩展搜索框中通过 IntelliSense 访问它们。
请注意,如果类别名称包含多个单词,您必须用引号将其括起来(例如,category:"SCM Providers"
)。
标签可以包含任何字符串,并且不由 IntelliSense 提供,因此请查看 Marketplace 以找到有用的标签。
从 VSIX 文件安装
您可以手动安装打包在 .vsix
文件中的 VS Code 扩展。在扩展视图命令下拉菜单中使用从 VSIX 安装命令,或在命令面板中使用扩展:从 VSIX 安装命令,然后指向 .vsix
文件。
您也可以使用 VS Code 的 --install-extension
命令行开关,并提供 .vsix
文件的路径来进行安装。
code --install-extension myextension.vsix
您可以在命令行上多次提供 --install-extension
以一次性安装多个扩展。
当您通过 VSIX 安装扩展时,该扩展的自动更新默认是禁用的。
如果您想了解更多关于打包和发布扩展的信息,请参阅我们扩展 API 中的发布扩展文章。
工作区推荐的扩展
一套好的扩展可以使处理特定工作区或编程语言的工作更有效率,您通常希望与您的团队或同事分享这个列表。您可以使用扩展:配置推荐的扩展(工作区文件夹)命令为工作区创建一个推荐的扩展列表。
在单文件夹工作区中,该命令会在工作区的 .vscode
文件夹中创建一个 extensions.json
文件,您可以在其中添加扩展标识符列表 ({publisherName}.{extensionName})。
在多根工作区中,该命令将打开您的 .code-workspace
文件,您可以在 extensions.recommendations
下列出扩展。您仍然可以通过使用扩展:配置推荐的扩展(工作区文件夹)命令,将扩展推荐添加到多根工作区的单个文件夹中。
一个 extensions.json
的例子可能是:
{
"recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
}
它推荐了一个 linter 扩展和一个代码格式化扩展。
扩展通过其发布者标识符和扩展标识符 publisher.extension
来识别。您可以在扩展的详情页面上看到这个名称。VS Code 会在这些文件中为您提供已安装扩展的自动补全。
.
当工作区首次打开时,VS Code 会提示用户安装推荐的扩展。用户也可以使用扩展:显示推荐的扩展命令来查看列表。
后续步骤
以下是您可能感兴趣的一些主题...
- 扩展 API - 开始学习 VS Code 扩展 API。
- 您的第一个扩展 - 尝试创建一个简单的 Hello World 扩展。
- 发布到 Marketplace - 将您自己的扩展发布到 VS Code Marketplace。
常见问题
扩展安装在哪里?
扩展安装在每个用户的扩展文件夹中。根据您的平台,位置在以下文件夹中:
- Windows
%USERPROFILE%\.vscode\extensions
- macOS
~/.vscode/extensions
- Linux
~/.vscode/extensions
您可以通过使用 --extensions-dir <dir>
命令行选项启动 VS Code 来更改位置。
或者,您可以将 VSCODE_EXTENSIONS
环境变量设置为您想要安装扩展的位置。这在企业环境中非常有用,因为您希望集中管理用户机器上扩展的安装位置。
每当我尝试安装任何扩展时,都会收到 connect ETIMEDOUT 错误
如果您的机器通过代理服务器访问互联网,您可能会看到此错误。有关详细信息,请参阅设置主题中的代理服务器支持部分。
我可以直接从 Marketplace 下载扩展吗?
一些用户更喜欢从 Marketplace 下载一次扩展,然后从本地共享安装到多个 VS Code 实例。当存在连接问题或您的开发团队希望使用一组固定的扩展时,这很有用。
要下载扩展,请在扩展视图中搜索它,从结果中右键单击一个扩展,然后选择下载 VSIX 或下载特定版本 VSIX。
我可以阻止 VS Code 提供扩展推荐吗?
是的,如果您不希望 VS Code 在扩展视图中或通过通知显示扩展推荐,可以修改以下设置:
- extensions.showRecommendationsOnlyOnDemand - 设置为 true 以移除推荐部分。
- extensions.ignoreRecommendations - 设置为 true 以静默扩展推荐通知。
如果您想查看推荐,显示推荐的扩展命令始终可用。
我可以信任来自 Marketplace 的扩展吗?
Visual Studio Marketplace 采取了多种措施来保护您免受恶意扩展的侵害,您也可以在安装前采取各种步骤来确定扩展是否可靠。
从 VS Code 1.97 版本开始,当您首次从第三方发布者安装扩展时,VS Code 会显示一个对话框,提示您确认是否信任该扩展发布者。
获取更多关于扩展运行时安全的信息。
VS Code 无法验证扩展签名
Visual Studio Marketplace 在所有扩展发布时都会对其进行签名。当您安装扩展时,VS Code 会验证此签名,以检查扩展包的完整性和来源。
安装扩展时,您可能会看到以下错误消息:无法安装扩展,因为 Visual Studio Code 无法验证扩展签名
。此错误可能由多种原因引起,如果遇到此错误,请在决定无论如何都要安装之前保持谨慎。您可以使用 extensions.verifySignature 设置来禁用扩展签名验证。
包完整性问题
对于包完整性问题,建议您联系 Visual Studio Marketplace 团队报告问题。请确保包含扩展 ID。以下列表提供了与包完整性问题相关的错误代码:
PackageIntegrityCheckFailed
SignatureIsInvalid
SignatureManifestIsInvalid
SignatureIntegrityCheckFailed
EntryIsMissing
EntryIsTampered
Untrusted
CertificateRevoked
SignatureIsNotValid
SignatureArchiveHasTooManyEntries
NotSigned
其他问题
对于其他问题,如不支持的环境或未知原因,建议您向 VS Code 报告问题,提供所有必要信息并包括共享日志:⇧⌘P (Windows、Linux 为 Ctrl+Shift+P) > 打开视图... > 共享。
连接到远程窗口时我的扩展不同步
设置同步允许您在多台机器之间共享您的 Visual Studio Code 配置,如设置、键盘快捷键和已安装的扩展,以便您始终使用自己喜欢的设置。
当您连接到远程窗口时,例如连接到 SSH、开发容器 (devcontainer) 或 WSL 时,VS Code 不会同步您的扩展到远程窗口或从远程窗口同步扩展。
我可以在我的组织中允许或阻止特定的扩展吗?
您可以通过配置 extensions.allowed
应用程序设置来控制组织中可以安装哪些扩展。如果未配置该设置,则允许所有扩展。如果配置了该设置,则所有未列出的扩展都将被禁止安装。
获取更多关于配置允许的扩展的详细信息。