扩展市场
Visual Studio Code 开箱即用的功能仅仅是个开始。VS Code 扩展让你可以向安装中添加语言、调试器和工具,以支持你的开发工作流。VS Code 丰富的可扩展性模型允许扩展作者直接插入 VS Code UI,并通过与 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”,以筛选 Marketplace 中标题或元数据包含“todo”的扩展。你会在列表中看到 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: 区分大小写设置。
如果某个扩展未能提供你想要的功能,你随时可以从管理按钮的上下文菜单中卸载该扩展。
这只是安装和使用扩展的一个例子。VS Code Marketplace 拥有数千个扩展,支持数百种编程语言和任务。从Java、Python、Go 和 C++ 的功能齐全的语言支持,到创建 GUID、更改颜色主题或向编辑器添加虚拟宠物的简单扩展,应有尽有。
扩展详情
在扩展详情页面,你可以阅读扩展的 README 并查看扩展的
- 功能贡献 - 扩展对 VS Code 的添加,例如设置、命令和键盘快捷方式、语言语法、调试器等。
- 更新日志 - 如果可用,则为扩展仓库的 CHANGELOG。
- 依赖项 - 列出扩展是否依赖于任何其他扩展。
如果扩展是一个扩展包,扩展包部分将显示安装该包时将安装哪些扩展。扩展包将单独的扩展捆绑在一起,以便可以一次性轻松安装。
扩展视图筛选器和命令
你可以使用筛选扩展上下文菜单筛选“扩展”视图。
有以下筛选器可供显示:
- 可以更新的过期扩展列表
- 当前已启用/禁用的扩展列表
- 根据你的工作区推荐的扩展列表
- 全球热门扩展列表
你可以按安装次数、评分、名称、发布日期或更新日期以升序或降序对扩展列表进行排序。你可以在下方了解更多关于扩展搜索筛选器的信息。
你可以通过 ...
视图和更多操作按钮运行其他“扩展”视图命令。
通过此上下文菜单,你可以控制扩展更新、启用或禁用所有扩展,并使用 Extension Bisect 工具来隔离有问题的扩展行为。
搜索扩展
你可以清除“扩展”视图顶部的搜索框,然后键入你正在查找的扩展、工具或编程语言的名称。
例如,输入“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
等筛选器。此外,还有可用的筛选器,允许你按人气或评分排序,并按类别(例如“代码检查器”)和标签(例如“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, 数据科学, 调试器, 教育, 扩展包, 格式化工具, 键映射, 语言包, 代码检查器, 机器学习, 笔记本, 其他, 编程语言, 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
文件,你可以在其中添加扩展标识符列表 ({发布者名称}.{扩展名称})。
在多根工作区中,该命令将打开你的 .code-workspace
文件,你可以在 extensions.recommendations
下列出扩展。你仍然可以使用扩展:配置推荐扩展(工作区文件夹)命令向多根工作区中的单个文件夹添加扩展推荐。
一个示例 extensions.json
可能如下所示:
{
"recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
}
这推荐了一个代码检查器扩展和一个代码格式化程序扩展。
扩展使用其发布者标识符和扩展标识符 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
命令行选项启动 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 配置,例如设置、键盘快捷方式和已安装的扩展,这样你就可以始终使用你喜欢的设置。
VS Code 不会将你的扩展同步到远程窗口或从远程窗口同步,例如当你连接到 SSH、开发容器 (devcontainer) 或 WSL 时。
我可以允许或阻止组织中的特定扩展吗?
你可以通过配置 extensions.allowed
应用程序设置来控制可以在组织中安装哪些扩展。如果未配置该设置,则允许所有扩展。如果配置了该设置,则所有未列出的扩展都将阻止安装。
获取更多关于配置允许的扩展的详细信息。