我需要把我安装的所有扩展发给我的同事。我如何导出它们?
扩展管理器似乎什么也不做…它不会安装任何扩展。
我需要把我安装的所有扩展发给我的同事。我如何导出它们?
扩展管理器似乎什么也不做…它不会安装任何扩展。
当前回答
在Windows上,使用powershell脚本。这将返回一个更好地反映名字的“FriendlyName”,因为它将出现在Visual Studio Code UI中(这是Code -list-extensions所不做的):
<#
.SYNOPSIS
Lists installed Visual Studio Code Extensions in a friendly format.
.DESCRIPTION
Lists installed Visual Studio Code Extensions in a friendly format.
.INPUTS
None. You cannot pipe objects to this.
.OUTPUTS
A list of installed Visual Studio Code Extensions in a friendly format.
.EXAMPLE
PS> .\List-Extensions.ps1
.NOTES
Author: John Bentley
Version: 2022-07-11 18:55
Latest at: [How can you export the Visual Studio Code extension list?
> John Bentley's Answer]
(https://stackoverflow.com/a/72929878/872154)
#>
# Change to your directory
$packages = Get-ChildItem C:/Users/John/.vscode/extensions/*/package.json
Function Out-JsonItem($File) {
$json = Get-Content $File | ConvertFrom-Json
$extensionMetaData = [PSCustomObject]@{
# This is the name that appears in the Visual Studio Code UI,
# Extensions Tab
FriendlyName =
if ($json.displayName) { $json.displayName } else { $json.name }
# Name = $json.name
PublisherAndName = $json.publisher + '.' + $json.name
Description = $json.description
}
return $extensionMetaData
}
$extensions = ($packages | ForEach-Object { Out-JsonItem -File $_ })
$extensions.GetEnumerator() | Sort-Object {$_.FriendlyName}
# Alternate sorting (Same order as `code --list-extensions`).
# $extensions.GetEnumerator() | Sort-Object {$_.PublisherAndName}
示例输出:
FriendlyName PublisherAndName
------------ ----------------
[Deprecated] Debugger for Chrome msjsdiag.debugger-for-chrome
%displayName% ms-vscode-remote.remote-wsl
Apache Conf mrmlnc.vscode-apache
Apache Conf Snippets eiminsasete.apacheconf-snippets
Auto Close Tag formulahendry.auto-close-tag
Beautify HookyQR.beautify
Blank Line Organizer rintoj.blank-line-organizer
change-case wmaurer.change-case
Character Count stevensona.character-count
...
Word Count ms-vscode.wordcount
Word Count OliverKovacs.word-count
XML redhat.vscode-xml
XML Tools DotJoshJohnson.xml
XML Tools qub.qub-xml-vscode
XPath Notebook for Visual Studio Code deltaxml.xpath-notebook
XSLT/XPath for Visual Studio Code deltaxml.xslt-xpath
产品说明:
复制脚本代码并将其保存为List-Extensions文件。ps1某处(仅限Windows)。 修改$packages = Get-ChildItem C:/Users/John/.vscode/extensions/*/package。Json指向您的目录(更改用户名)。 在你保存List-Extensions的目录下打开Windows终端。ps1(这里的Set-Location命令可能有帮助)。 使用。\List-Extensions.ps1从Windows终端运行脚本
其他回答
如何从终端导出Visual Studio Code扩展。这是钱。也许这能帮到别人。
如何从终端导出您的Visual Studio Code扩展
注意:仅适用于类unix系统。
导出你的扩展到一个shell文件:
code --list-extensions | sed -e 's/^/code --install-extension /' > my_vscode_extensions.sh
验证您的扩展安装文件:
less my_vscode_extesions.sh
安装扩展(可选)
使用Bash命令运行my_vscode_extensions.sh:
bash my_vscode_extensions.sh
有一个扩展管理器扩展,这可能会有所帮助。它似乎允许安装一组在settings.json中指定的扩展。
我已经开发了一个扩展,它将同步你所有的Visual Studio代码设置跨多个实例。
关键特性
使用你的GitHub账户令牌。 易于上传和下载一键。 保存所有设置和片段文件。 上传键:Shift + Alt + U 下载键:Shift + Alt + D 输入“同步”查看所有同步选项
它同步
设置文件 Keybinding文件 启动文件 片段的文件夹 Visual Studio代码扩展
详细文档来源
Visual Studio代码同步ReadMe
这里下载:Visual Studio代码设置同步
在Windows上,使用powershell脚本。这将返回一个更好地反映名字的“FriendlyName”,因为它将出现在Visual Studio Code UI中(这是Code -list-extensions所不做的):
<#
.SYNOPSIS
Lists installed Visual Studio Code Extensions in a friendly format.
.DESCRIPTION
Lists installed Visual Studio Code Extensions in a friendly format.
.INPUTS
None. You cannot pipe objects to this.
.OUTPUTS
A list of installed Visual Studio Code Extensions in a friendly format.
.EXAMPLE
PS> .\List-Extensions.ps1
.NOTES
Author: John Bentley
Version: 2022-07-11 18:55
Latest at: [How can you export the Visual Studio Code extension list?
> John Bentley's Answer]
(https://stackoverflow.com/a/72929878/872154)
#>
# Change to your directory
$packages = Get-ChildItem C:/Users/John/.vscode/extensions/*/package.json
Function Out-JsonItem($File) {
$json = Get-Content $File | ConvertFrom-Json
$extensionMetaData = [PSCustomObject]@{
# This is the name that appears in the Visual Studio Code UI,
# Extensions Tab
FriendlyName =
if ($json.displayName) { $json.displayName } else { $json.name }
# Name = $json.name
PublisherAndName = $json.publisher + '.' + $json.name
Description = $json.description
}
return $extensionMetaData
}
$extensions = ($packages | ForEach-Object { Out-JsonItem -File $_ })
$extensions.GetEnumerator() | Sort-Object {$_.FriendlyName}
# Alternate sorting (Same order as `code --list-extensions`).
# $extensions.GetEnumerator() | Sort-Object {$_.PublisherAndName}
示例输出:
FriendlyName PublisherAndName
------------ ----------------
[Deprecated] Debugger for Chrome msjsdiag.debugger-for-chrome
%displayName% ms-vscode-remote.remote-wsl
Apache Conf mrmlnc.vscode-apache
Apache Conf Snippets eiminsasete.apacheconf-snippets
Auto Close Tag formulahendry.auto-close-tag
Beautify HookyQR.beautify
Blank Line Organizer rintoj.blank-line-organizer
change-case wmaurer.change-case
Character Count stevensona.character-count
...
Word Count ms-vscode.wordcount
Word Count OliverKovacs.word-count
XML redhat.vscode-xml
XML Tools DotJoshJohnson.xml
XML Tools qub.qub-xml-vscode
XPath Notebook for Visual Studio Code deltaxml.xpath-notebook
XSLT/XPath for Visual Studio Code deltaxml.xslt-xpath
产品说明:
复制脚本代码并将其保存为List-Extensions文件。ps1某处(仅限Windows)。 修改$packages = Get-ChildItem C:/Users/John/.vscode/extensions/*/package。Json指向您的目录(更改用户名)。 在你保存List-Extensions的目录下打开Windows终端。ps1(这里的Set-Location命令可能有帮助)。 使用。\List-Extensions.ps1从Windows终端运行脚本
如果您打算跨团队共享工作空间扩展配置,您应该查看Visual Studio Code的推荐扩展特性。
要生成该文件,请打开命令托盘> Configure Recommended Extensions (Workspace Folder)。从那里,如果你想获得所有当前的扩展并将它们放在这里,你可以使用——list-extensions在其他答案中提到的东西,但添加一些AWK脚本,使其可粘贴到JSON数组中(你可以根据自己的需要获得更多或更少的高级功能-这只是一个快速示例):
代码——list-extensions | awk的{打印“\”“0”\“\”}”
这种方法的优点是可以将团队范围内的工作空间配置检入源代码控制。有了这个文件在项目中,当项目打开时,Visual Studio Code会通知用户有推荐的扩展需要安装(如果他们还没有的话),并且可以用一个按钮将它们全部安装。