Vscode: 提供支持以在机器之间同步设置

创建于 2016-02-05  ·  129评论  ·  资料来源: microsoft/vscode

有一些安静的扩展可以处理多台计算机之间的设置同步。 在我看来,它们非常重要:由于 vscode 的设置、键盘快捷键和扩展非常可定制,因此很难在多个工作站之间同步这些东西。 所有这些扩展都不是真正干净的解决方案,因为 vscode 几乎没有做任何事情来支持它们(例如 vscode 使用的路径没有公开,请参阅 #2741)。

所以这里有一些想法可以使同步变得干净和可扩展:

  • 为同步扩展添加贡献点

    • 这些扩展不应该收集所有必须同步的文件。 vscode 应该这样做,然后将它们传递给扩展

    • 这样一个扩展的工作只是上传/下载文件,传递给他们(所以我们可以有gist upload / svn upload / git repo upload / dropbox / filesystem / onedrive / ftp / other services

    • 或者也许将所有设置收集到一个大的 json 对象中并传递它。

    • 支持版本控制和非版本控制扩展

  • 添加一个 remote_settings.json 以构建在工作空间设置/用户设置堆栈之上。
  • 允许自动和用户触发同步

好的......只是一些想法:微笑:

config plan-item settings-sync

最有用的评论

设置同步设计方案:

我们计划在 VS Code 中构建设置同步,如下所示:

  • VS Code 将提供 UI 和功能来同步设置、键绑定、扩展和片段。
  • VS Code 与服务端点对话以读取和写入数据

VS Code 设置同步服务端点

  • 提供 ReST API 来读取和写入数据(后端)
  • 为用户登录提供认证机制。

所有129条评论

相关: https ://github.com/Microsoft/vscode/issues/679

如果您有兴趣,这是我在 Linux 和 Windows 上同步键绑定和设置的解决方案。 我还没有深入研究如何使用扩展来做这件事,但我前段时间确实提交了https://github.com/Microsoft/vscode/issues/691来帮助解决这个问题。

Atom 的插件同步设置使用 GitHub Gist 进行备份/同步:

  • 设置
  • 套餐
  • 键盘映射
  • _(样式)_
  • _(在里面)_
  • 片段

Atom 还支持直接在 Github 中为添加星标,然后使用apm stars --user thedaniel --install轻松安装它们。

Imo 这是一个相当低的优先级,因为大多数时间设置都被与版本控制同步的工作区设置覆盖。

然而, @felixfbecker扩展是没有版本控制的东西之一。 键盘映射也不是。

@csholmq这是一个单独的问题。 例如,可能有一个.vscode/extensions.json ,它指定应该为这个项目安装哪些扩展,比如 editorconfig 或特定的调试适配器,以及像 package.json 这样的 semver 版本约束。

这与此问题中提出的原始 API 请求无关,但有一个使用 Gists 的同步扩展。 https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync

@egamma正是我追求的功能。 但正如@felixfbecker提到的,也许这个问题是一个单独的问题。

在一台机器上安装一次扩展,然后让您的其他机器提示或在其他任何地方自动安装相同的扩展也可能会很好。

Atom 有一个带有“星号”的在线包浏览器,您可以运行一个命令来安装您已加星标的所有内容。 仍然不是自动的,但这是一个开始。

我知道其他人可能会反对,但我个人认为在每台机器上使用我的 Microsoft 帐户登录一次 VSCode 是没有问题的,如果它促进了这种便利性的话。 也许可以提供一个同步框架或其他东西,以便提供商特定的扩展可以实现身份验证和云持久性(例如,一个用于 Microsoft,一个用于 Google Drive、Dropbox 等)。

我前段时间写了一个扩展(这里,也有一段时间没有更新),试图帮助使用文件同步服务在计算机之间同步扩展。 最初我只支持同步主题,因为同步扩展似乎有些混乱。

我认为这应该是维护计算机之间扩展的正确方法。 保留哪些扩展安装在哪里的列表,能够挑选和选择应该在哪台计算机上安装哪些扩展,然后只管理这些扩展的同步设置。 我认为扩展管理设置的推荐方法是通过这个

非常同意您的观点,添加功能--帐户和同步,处理设置同步扩展同步(标记扩展拥有),这将使安装和在多台计算机之间同步VS 代码变得更加容易。
同步扩展的另一个扩展: https ://marketplace.visualstudio.com/items?itemName=golf1052.code-sync

除了这个想法,还应该考虑。 将全局扩展和设置与项目的特定扩展分开。 与来自项目依赖项的 npm 全局包相同。

@felixfbecker ,这是一个很好的解决方案,但是为什么Shift + Alt + U没有反应迟钝? 我的电脑系统是Mac,vscode版本是1.18.0。 非常感谢你。

@chenxiaochun与您计算机中的其他热键冲突,可能是系统热键,但主要与您在自己的 Mac 中安装的应用程序的热键冲突。 Ctrl + Shift + P (显示所有命令,我的是windows,你可以在Mac中查看),通过在列表中选择命令执行同步。 另一种方法,你可以在vscode中修改热键或找到应用程序并修改热键。

我想要我已经安装的扩展。 我有大约 30 个扩展,如何将它们导出到多台电脑?

因为在 vscode 中没有正式实现此类功能 - 我使用了一个名为“设置同步”的扩展,它同步设置和扩展

仍然不支持这个? :/
我希望与我的 Microsoft 帐户自动同步 VS Code 设置/扩展

我认为应该给予更多的优先权。 许多用户在工作机器和家用机器上有多台机器或双启动或 vscode 设置。

诚然,它现在应该是此类应用程序中的一项强制性功能

对此再投一票。

点赞

我不想看到另一个“赞成”评论。 改为在顶部投票原始问题帖子。 请不要用upvote 评论混淆讨论。

我希望这样的东西现在就可以使用,因为我正在备份我未同步的东西,为格式做准备。 即使没有同步,至少应该有一些导出整个配置文件的东西,我可以在格式化后导入,或者导入另一台计算机。 我目前的解决方案是:

  • code --list-extensions获取扩展名列表,将其粘贴到同步文件夹上的 .txt 中。
  • 将用户设置 JSON 复制并粘贴到同步文件夹上的 .txt 文件中。
  • 将键绑定 JSON 复制并粘贴到同步文件夹上的 .txt 文件中。

不是很糟糕,但仍然很草率。 一方面,我不能 100% 确定我已经备份了有关 VScode 的所有内容。

编辑:注意到我错过了一个,幸运的是在我开始格式化之前。 将第三项添加到列表中。

为什么不直接将包含设置扩展等的两个目录与​​ Dropbox 进行 simlink? 我已经用 atom 做了很多年了,没有任何问题。 vscode会失败有什么原因吗?

@backspaces扩展可以在其中包含本机模块,因此在 Linux 和 Windows 之间共享扩展(例如)可能不起作用
最好只共享扩展 ID 列表(而不是扩展本身),以便代码(或其他东西)可以安装它们

另外,如果您只需登录 VSCode 并在提示您时选中几个复选框,那将是一个更好的体验:“请检查您要导入/同步的内容:”

[x] extensions
[x] themes
[x] settings

同意! :)

请让这发生。 今天我们有设置同步扩展,但是用 gist 等设置真的很难。 开箱即用的 VScode 中集成的东西会好得多,我们可以从中受益,而不必担心安装正确的扩展

@antoninadert说得好

如果您同意评论/问题,请使用竖起大拇指按钮。 我们中的大多数人都订阅了问题,因此我们可以收到进度和公告的通知,并且接收带有凹凸评论的电子邮件充其量是令人恼火的。

很高兴知道微软在他们的路线图中是否有这个。 我想这很棘手,因为这意味着包含一些专有代码,并且当部分代码变暗时,开源社区会自己搞砸。 但也许情况并非如此,MS 可以使用开放代码将其包含在内。 无论哪种方式,对这个非常需要的功能进行更新都会很好。

由于此问题,当前存在的解决方案(例如 Settings Sync、CodeSync)在卸载扩展时无法正常工作: https ://github.com/Microsoft/vscode/issues/14444
我想如果解决了这个问题,社区解决方案的错误就会减少,但仍然令人费解。

有谁知道 MS 是否有任何地方的 Code 路线图?

没关系,我找到了: https ://github.com/Microsoft/vscode/wiki/Roadmap

而且它看起来与同步设置没有任何关系。 为明年祈祷。 然而,我们都记得棕色标志; 也许,如果有足够的支持,他们会更早地关注这个问题。

我之前提到了保管箱解决方案,并同意有理由反对它。

但是:假设我正在同步的两台计算机都是相同操作系统版本的 mac,有什么理由不使用保管箱方法吗?

而且我注意到代码 cli 甚至可以更改扩展文件夹,因此它可以直接在 Dropbox 中而无需符号链接。

作为“设置同步”的作者,我同意这个帖子的实际帖子。

而不是由 Microsoft 自己提供端到端同步解决方案。
提供允许扩展获取所需信息的方法会很棒。

例如:

  1. 允许扩展作者读取User目录中的任何文件。 他们将自行管理以使用 GitHub、Google Drive、OneDrive、GitLab 等进行包装。
  2. 创建更多自定义 API 以允许在某些点上发生事件,例如当前 Settings Sync 在任何扩展下载时都缺少自动上传。 我已经打开了问题并且有超过 800 多票https://github.com/Microsoft/vscode/issues/14444但它仍然悬而未决。
  3. 允许扩展作者启用/禁用扩展 - https://github.com/Microsoft/vscode/issues/15466https://github.com/Microsoft/vscode/issues/37620

PS 我一直在寻求改进设置同步 - 随时讨论并向我发送 PR 或改进公共 Wiki

52739 是我的要求。 虽然被标记为重复(我同意),但我认为重要的是要注意这个请求和我的请求之间的主要区别在于,这个请求支持更好的扩展支持(更好),而我支持内置支持(最好),就像自 2013 年以来在 Visual Studio 中所做的那样。

我完全同意@Chiramisu :我们不想要更好的扩展支持。 我们想要内置同步。

同步扩展通过增加大量开销来破坏同步的目的。 这是我们目前的解决方法。

登录到 Visual Studio 并立即下载您的个人资料、项目、扩展程序和设置会有多神奇? 在任何机器上(个人,工作)。

好吧,这就是谷歌对 Chrome 所做的:当你登录时,它们会自动同步扩展程序、凭据、收藏夹……。
如果你问我,这是一个杀手级功能。

@antoninadert我更喜欢 VSCode 公开用于扩展的 API 以进行同步,并确保其中之一可能来自 Microsoft 本身使用 OneDrive 或 GitHub。 我只是看不出有什么理由应该支持一个云提供商的内置同步。

@gandalfsaxe显而易见的原因是,您可以在每台机器上全新安装的 Visual Studio 上安装它,并且无需任何配置。

如果这些优势不能对你说的话,我就一无所知了......

@antoninadert如果他们这样做,我当然不会抗议,我认为这总比没有好,但出于两个密切相关的原因,我仍然更喜欢 API/扩展方式:

  1. 如果他们是内置的,我们可能也无法获得 API 扩展,因此可能会在一段时间内无法使用内置解决方案。 如果唯一的选择是 OneDrive 或 GitHub,原则上可能是各种公司的安全问题。
  2. 不偏爱一种云存储/解决方案而不是另一种。 不过,不介意微软开发的一个得到很好支持的扩展。

但是,如果它们同时为其他扩展提供内置功能和 API 以进行同步,那也很棒。

我仍然认为同步 api 是要走的路。 是的,正如@gandalfsaxe 所建议的那样,一个得到良好支持的微软开发的同步扩展也会很好。 我也不介意预安装该扩展程序。 这将是便利性和可扩展性之间的完美折衷。

不过,我会觉得开始预装扩展很奇怪。 我认为 VSCode 仍然应该提供开箱即用的零扩展。 如果它足够重要/通用,它应该是内置的。 否则它应该像其他所有东西一样在市场上。 将一个同步扩展作为单一例外会很奇怪🙂

但是,如果它们同时为其他扩展提供内置功能和 API 以进行同步,那也很棒。

我也认为这将是一个完美的解决方案,所以如果有人有比原生解决方案更好的解决方案,他们可以使用它。

但是如果你问我,内置它仍然是最重要的选择

@gandalfsaxe

  1. 如果他们是内置的,我们可能也无法获得 API 扩展,因此可能会在一段时间内无法使用内置解决方案。 如果唯一的选择是 OneDrive 或 GitHub,原则上可能是各种公司的安全问题。

内置并不意味着“OneDrove 固执己见。它应该提供选项。

  1. 不偏爱一种云存储/解决方案而不是另一种。 不过,不介意微软开发的一个得到很好支持的扩展。

我认为拥有以下流程更为重要:1)安装VSCode; 2) 登录; 3)就是这样
所以必须有一个内置的解决方案。

@MrCroft当然,如果 VSCode 团队可以优先考虑对 3-10 个云服务的内置支持,那就太棒了。 我的建议是基于我的假设,即 VSCode 团队没有将此问题作为特别高优先级的问题。

在我看来,解决方案可以分两步完成:

  1. 立即解决方案:公开相关 API,以便扩展可以使用任意云服务同步所有相关内容。

  2. 长期解决方案:1)安装VSCode; 2) 登录。

不过,我会对任何解决方案感到满意。 现在使用 VSCode 多平台有点麻烦。

@gandalfsaxe我完全理解你(和其他人)关于 API 论点的观点,我在很多方面都同意。 无论哪种方式,我个人都更喜欢使用 Microsoft 选项,因为我与我的 Microsoft 帐户同步,因此天生就信任他们拥有这些数据。 尽管如此,我完全赞成有选择的人。 让最好的扩展获胜。

同步环境对我来说是一个巨大的增值,因为我在不少于两台设备上安装了 VSCode 和 VSCode Insiders,总共有 3-4 个环境,包括本地 VM(Windows 和 Linux)。

我尝试使用 Shan Khan 原本很有前途的Setting Sync扩展,但它与 VSCode 的可移植版本不兼容。 为什么不? 我认为是因为他正在等待 VSCode提供一个 API 来公开文件路径,这样他就可以更安全地进行操作,并且不必对各种路径进行硬编码。

目前没有用于扩展的标识符来知道代码是否作为可移植模式运行。
为了支持便携模式, Settings Sync需要知道代码正在其上运行( https://github.com/Microsoft/vscode/issues/54824 )以及甚至用户已更改的各种路径( https://github.com/ Microsoft/vscode/issues/2741 )正如@GandalfSaxe提到的。

@shanalikhan便携式/非便携式解决方案之间的手动切换可以是临时的临时解决方案吗?

请与 microsoft 帐户或/和 github 集成以同步所有内容。 :)

s2 VS代码! 有史以来最好的ide!

如果 vscode 与 Microsoft 帐户或 Github 集成,则扩展查看器可能会有所改进,例如能够从 Code 中查看扩展。 还可以选择报告自动生成扩展信息的问题。

由于微软拥有 Github,它也将是有利可图的,因为它会鼓励人们保留他们的 Github 帐户。 出色的 git 集成将真正激励人们抛弃其他文本编辑器并采用 Code。

我在想可能会改变活动设置视图,让它像客户经理一样工作? 它可以列出您的通知、帐户设置等。 它本质上只是替换上下文菜单,创建一个更精简的界面。

我真的更喜欢 vscode 在我的主目录中查找.vscode文件夹并从那里加载设置(如果存在)。 这将让我决定我决定与之同步的服务以及如何完全在应用程序外部进行同步。 如果我想使用 git:我将 .vscode 设为 git repo,如果我想使用 dropbox:我可以对其进行符号链接,等等...

许多编辑器支持从atomvim以及介于两者之间的所有点文件。 其中许多工具甚至在 Windows 上寻找点文件,所以我不明白为什么这里会忽略这种模式。

@fishpen0这对便携式版本有什么作用?

如果在与可执行文件相同的路径中有.vscode目录,则以最高优先级加载该目录。

@fishpen0我认为这是一个好主意:如果存在.vscode中的文件(可能添加一行来决定优先级:.vscode over sync,.vscode with sync(尝试混合),.sync over .vscode)
让我们两全其美

这里有一些很棒的东西。
我会对包含我想要“便携”的所有信息的 .vscode 文件感到满意......这样我可以将该文件夹保存在 Git 存储库中......稍微改变我在#56850中的首选方法,但可以接受。

然后它会是这样的:

  1. 安装 VSCode
  2. 将 .vscode Git 存储库克隆到 VSCode 查找的 .vscode 位置。
  3. 重新启动 VSCode,然后观看它返回我的所有设置、扩展安装和链接的 Git 存储库。

在另一台计算机上设置另一个 VSCode 实例是一个巨大的痛苦。 需要重新安装的扩展太多,需要重新克隆的 Git 存储库太多,需要重做的设置太多。

至少应该能够导出/导入扩展列表,这应该很容易实现。

希望添加导入和导出设置或将设置上传到 Microsoft 帐户。

如果与 Microsoft 帐户集成将很难。 也许它可以像浏览器配置文件一样首先实现,仅将所有用户配置分隔在一个文件夹中。 然后,用户可以创建,例如,一个 git 存储库以将其同步到其他地方。 同步是 Git 擅长的一项功能,它可以与任何云系统集成,如 Bitbucket、Gitlab 等。

从第一天开始,Code 中就没有内置帐户同步功能,这让我感到非常惊讶。 好像不费吹灰之力。

来自@SrTobi

所以这里有一些想法可以使同步变得干净和可扩展:

  • 为同步扩展添加贡献点

是的!!! 让美好和干净成为可能。

我要补充一个考虑因素。 基于设置源的设置的继承和覆盖。 我不希望我的配置在所有项目中都相同。 在 Vim 中工作时,通常会为宏/键绑定快捷方式进行基于项目的配置,尽管 Vim 在这方面很像狂野的西部,这就是为什么我喜欢你通过贡献点来实现这一点的想法。 Eclipse 也允许对所有类型的设置进行此操作,尽管在 Eclipse 中它不是很干净。

+1

有些功能我不相信任何第三方扩展。 帐户同步绝对是其中之一!

“常规”Visual Studio 具有此功能:您使用 Microsoft 帐户登录并同步设置。 至少从 Visual Studio 2015 开始就拥有它。在 VS Code 中也能拥有它会很棒。 我想知道它是否甚至可以重用相同的后端系统?

从设置新机器的角度来看,该扩展程序迫使我完成安装该扩展程序并将 github 密钥添加到 vscode 的过程,然后才能同步我的设置。 那时我还不如手动从保管箱中的文件或其他东西中手动复制我的设置。

我想要的只是一个目录,我可以将我的设置文件和插件放在 vscode 自动加载中,这样我就可以使用我想要的任何工具或过程来管理它。

我将重申我的建议,即使用我以前使用过的每个编辑器(vim、sublime、atom、jetbrains、emacs)也支持的dotfile folder in my home directory模式。

我意识到这种模式对于来自 Windows 环境的人来说可能是令人困惑的或新的,但它对于解决这个问题非常有效。 请查看https://dotfiles.github.io/ ,了解数百个使用 dotfiles 管理机器和环境之间设置的人的示例。

无论哪种方式,您都在查看配置提前期。 我不是说“这个想法糟透了”,我只是确保那些寻找这个功能的人实际上知道它是通过扩展存在的。 对你来说可能还不够; 对他们来说可能就足够了。

我宁愿只登录我的 MS 帐户并让它同步所有内容,就像 Google Chrome 同步所有内容一样。


来自:cmcit-bferg [email protected]
发送:2019 年 4 月 3 日星期三晚上 10:04:23
至:微软/vscode
抄送:tjgruber; 评论
主题:回复:[Microsoft/vscode] 提供跨机器同步设置的支持 (#2743)

无论哪种方式,您都在查看配置提前期。 我不是说“这个想法糟透了”,我只是确保那些寻找这个功能的人实际上知道它是通过扩展存在的。 对你来说可能还不够; 对他们来说可能就足够了。


您收到此消息是因为您发表了评论。
直接回复此邮件,在 GitHub 上查看https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode%2Fissues%2F2743%23issuecomment-479638007&data=02 %7C01%7C%7C56f78e59d2884cb592d308d6b86f9245%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636899186661366632&SDATA = ITS3%2B7c1ZmJWka4q1yS3O%2BfpoSl6sjCs7d4ERESn%2F%2FK%3D&保留= 0 ,或静音螺纹https://eur02.safelinks.protection.outlook.com/?url= HTTPS%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-AUTH%2FAO2oZ6E6OqvvTlOgQKwld4j5RhDr9vtVks5vdQlHgaJpZM4HUeqZ&数据= 02%7C01%7C%7C56f78e59d2884cb592d308d6b86f9245%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636899186661376637&SDATA = CQb0niUDYXXvo%2BcstXiyu5zxZ3h%2BHpFNV7%2BGbiM3WAA%3D&保留= 0

我真的希望你们能支持登录。 当我改变我的电脑时,我应该重写我的配置。我讨厌这种感觉。

Settings Sync 现在提供 GUI,只需登录 Github 并从 GUI Gist 列表中选择 GIST,即可无缝集成和同步您的设置。

你们怎么看,我们如何才能进一步改进。

对于那些继续坚持使用第三方扩展的人,我认为你没有抓住重点。 即使 API 是安全的,即使我在固定的时间点查看源代码以确保没有有趣的事情发生,我也不可能无限期地继续这样做。

因此,对于我在任何服务中拥有的任何帐户,我只信任该提供商提供我的帐户相关信息。 事实上,它们也可能会出错,但我宁愿通过不引入第三方扩展作为另一个变量和潜在的安全漏洞来减轻这种风险。 说到安全,

我总是努力做出明智和明智的决定,而使用第三方应用程序通过我的帐户同步数据则完全相反。

我不喜欢使用任何扩展来同步我的所有设置。 它必须是 Visual Code 的内置功能。 使用 GitHub 或 Microsoft 帐户登录并保存所有数据,例如:

  • 扩展
  • 设置(配置)
    等等。

我同意。 该扩展程序运行良好,但似乎错失了通过将所有内容链接到 Microsoft 或 GitHub 来更加用户友好的机会

这可能是微软将无用的事情之一! 这将取决于一些开发人员来为此创建扩展......它可能会更快地完成并且质量更好。

即使它没有同步设置,至少也是一种可靠的方式来导出和导入它们。 我使用不同的设置和扩展,具体取决于它是公司相关的还是个人的,所以对我来说导出/导入会比同步更好。 但两者都会很好!

对于那些继续坚持使用第三方扩展的人,我认为你没有抓住重点。 即使 API 是安全的,即使我在固定的时间点查看源代码以确保没有有趣的事情发生,我也不可能无限期地继续这样做。

因此,对于我在任何服务中拥有的任何帐户,我只信任该提供商提供我的帐户相关信息。 事实上,它们也可能会出错,但我宁愿通过不引入第三方扩展作为另一个变量和潜在的安全漏洞来减轻这种风险。 说到安全,

我总是努力做出明智和明智的决定,而使用第三方应用程序通过我的帐户同步数据则完全相反。

正是我的想法。 我几乎不明白为什么 VSCode 中没有内置的同步模块。

我刚刚开始将我的设置和扩展名列表保存在一个仓库中(使用工作站设置脚本):

https://gitlab.com/aztek-io/vscode-settings

我完全同意,尽管让 vscode 表现得像谷歌浏览器一样好,你只需用你的帐户登录,一切都是你在无数工作站上配置的方式。

为什么不写一个扩展来自动管理你的
Git repo 中的设置,无论何时进行提交和推送/拉取
做出改变? VSCode 发布(或至少暗示存在)每个
您需要构建它的工具。 然后有人可以在任何地方同步设置
他们喜欢,私人或公共,不需要微软帐户。 我们当然可以
主要是自己做,但我没有使用 VSCode 足够知道该做什么
版本以及特定于操作系统/平台的内容。 所以如果有人可以打包
这些知识在一个名为的扩展名中
搜索友好的 Git 设置同步,我将不胜感激。 :)

他似乎很容易,我很惊讶它还没有完成。 我们要不要
没有在插件中实现此功能所需的 API/权限?

@ndarilek有 - 它被称为 SettingsSync 但我们希望在应用程序中使用它而不是扩展

这不与 a) 公开和 b) GitHub 特定的要点同步吗?
我记得它也需要大量的手动设置,尽管我
认为这可能最近发生了变化。

我们大多数人都可以访问一些 VCS 或其他,甚至可以访问一些
托管私有 repo 的机制,即使它是通过廉价 VPS 上的 SSH。
鉴于此,我不清楚为什么我们需要将同步与 Microsoft 联系起来,
GitHub,甚至是特定的 VCS。

当 VSCode 在下面可以访问时,我可能会考虑这样做
Linux。 截至目前我还不是 VSCode 用户,但不明白为什么会这样
不是一个可行的选择。 没有反对微软,但设置同步
不是特别复杂,我宁愿自己托管这些数据。

只是几个数据点:
1- Github 是微软
2- VSCode 在 Linux 上
3- 3rd 方扩展的问题是信任更多
敏感信息,例如用于存储
必要的信息。

2019 年 9 月 12 日星期四上午 10:37,Nolan Darilek [email protected]
写道:

这不与 a) 公开和 b) GitHub 特定的要点同步吗?
我记得它也需要大量的手动设置,尽管我
认为这可能最近发生了变化。

我们大多数人都可以访问一些 VCS 或其他,甚至可以访问一些
托管私有 repo 的机制,即使它是通过廉价 VPS 上的 SSH。
鉴于此,我不清楚为什么我们需要将同步与 Microsoft 联系起来,
GitHub,甚至是特定的 VCS。

当 VSCode 在下面可以访问时,我可能会考虑这样做
Linux。 截至目前我还不是 VSCode 用户,但不明白为什么会这样
不是一个可行的选择。 没有反对微软,但设置同步
不是特别复杂,我宁愿自己托管这些数据。


您收到此消息是因为您发表了评论。
直接回复此邮件,在 GitHub 上查看
https://github.com/microsoft/vscode/issues/2743?email_source=notifications&email_token=AAFNROZZY2TJGCV2GS7XBI3QJJH33A5CNFSM4B2R5KM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6SDL6Q#issuecomment-53
或使线程静音
https://github.com/notifications/unsubscribe-auth/AAFNRO547VFY2VLO6BH7WQLQJJH33ANCNFSM4B2R5KMQ
.

  1. 我知道。 重点是,我们有能力进行第三方同步
    不涉及外部帐户/提供者,保存为
    最小的 SSH 访问。 微软或非微软只是一个
    考虑到他们是帐户的提供者。 我也会有同样的感觉
    关于将同步绑定到 GitHub,就像我绑定到 GitLab、Google 或 Owncloud 一样。
    多年来,人们一直通过 Git 对编辑器设置进行版本控制,就像
    已经指出。 我只是想知道我们如何才能捕捉到它
    知识到扩展,因为现在我必须谷歌如何
    设置一些东西并自己完成工作。 捕捉到
    知识/过程到扩展将节省时间。

  2. 它可能在 Linux 上,但我是盲人,Electron 应用程序大多是
    此时无法访问。 因此,“我现在不在做这个,但是
    如果其他人可以的话,我会喜欢的”黄鼠狼语——我只使用 VSCode
    在 Windows 虚拟机中执行某些任务,延迟会杀死它
    关于其他任何事情。 电子/铬可访问性即将到来,但 IIRC
    微软对 Electron 做了一些修改。 如果这是真的,希望
    fork 可以利用当前发生的上游工作
    铬/铬。

  3. 公平点,但如果问题是对扩展缺乏信任
    机制,那么为什么要关注与同步相关的攻击向量呢?
    用任何其他方式窃取代码或其他文件怎么样?
    你安装的扩展? 或者如果您担心设置
    具体来说,我不能写一个与设置无关的扩展
    将您的设置上传到我自己的服务器? 正版非拖钓
    问题——我不知道扩展机制是如何工作的,但我不知道
    认为它沙盒任何东西,是吗?

谢谢。

仅供参考@ndarilek Settings Sync 可以同步到私人 gist,您只需为其提供访问令牌。 使用起来很简单。 但是您对信任的担忧是有效的,如果 vscode 添加自己的联合设置同步功能将是理想的

设置同步设计方案:

我们计划在 VS Code 中构建设置同步,如下所示:

  • VS Code 将提供 UI 和功能来同步设置、键绑定、扩展和片段。
  • VS Code 与服务端点对话以读取和写入数据

VS Code 设置同步服务端点

  • 提供 ReST API 来读取和写入数据(后端)
  • 为用户登录提供认证机制。

Kamino 将此问题克隆到ChaseKnowlden/vscode

@sandy081设计提案是否支持与 Microsoft 帐户同步?

嗨 VSCode 团队,

由于这将成为一件事情,我很乐意建议 Azure AD 和个人 Microsoft 帐户具有身份验证的能力。
其他 OAuth 提供者也将受到赞赏(例如 Google、GitHub 等)

谢谢!

也许您甚至可以将这些设置同步到 Visual Studio Online! 我的 2 美分 :-)

我刚刚看到预览并想输入同步片段也应该包括在内。

计划在 3 月里程碑同步片段和全局状态 - https://github.com/microsoft/vscode/issues/86678

全部,正如您从我们的最新版本中知道的那样,设置同步功能已在内部人员中预览。 因此,请使用我们的内部人员试用该功能并向我们提供反馈 - https://code.visualstudio.com/insiders/

<3 希望此功能稳定

在花时间制作一个同步所有内容的扩展之前,我认为花一些时间管理默认情况下包含在 VS Code 文件夹中的最佳.gitignore文件会更有益,然后人们就可以开始了初始化 git repos 并自信地提交事情。

现在,我基本上提交了我的~/.vscode文件夹中的所有内容,包括扩展和缓存,因为老实说,我不知道什么不能提交。

我们不应该提交所有的扩展。 例如,就像@felixfbecker提到的那样,如果用户 VS Code 文件夹中有一个extensions.json文件,那就太好了,这样我们就可以提交它而不是提交所有扩展。 有了这个,VS Code 团队只需要发布一个不错的.gitignore文件(忽略扩展,但不忽略extensions.json等),然后我们所有人都会愉快地前进。

在这个基本的版本控制东西到位之后,在它之上构建“同步”扩展将会容易得多。

@sandy081这是否允许没有 MS 帐户的人将设置同步到 github?

您也可以使用您的 GitHub 帐户登录,但它会将数据同步到 MS Azure 后端。 请参阅此处的文档 - https://code.visualstudio.com/docs/editor/settings-sync#_enabling -settings-sync

@sandy081仍然需要拥有 Azure 或 Outlook 帐户。

我们不能像setting-sync一样使用 gist 吗? 因此用户不必创建新帐户。

我们不能像设置同步一样使用 gist 吗? 因此用户不必创建新帐户。

不,私人 Gists 未列出,但如果您能猜到网址,则公开。 这很危险。 不希望任何与凭证相关的偏好或令牌意外地提交到要点中。

使用 Github 帐户会很方便,无需 MS Azure。

虽然我很欣赏这个功能,但老实说,我对创建一个 MS 帐户或使用 GitHub gists 来保持我的 VSCode 设置、扩展等同步并不感兴趣。

我一直在我的 dotfiles 中愉快地保留我对 Sublime Text 和 Atom 的配置并与 Git 完全同步。 虽然我已经为 VSCode 做到了这一点,但我还没有找到同步扩展的方法。 在 Atom 中,我使用package-sync 。 这使我可以将扩展名列表保存在packages.cson文件中。 IIRC,Sublime Text 开箱即用地做了类似的事情。

我很高兴看到在 VSCode 中内置了类似的东西,因为在我看来这似乎是最明智的方法。 但是,如果不太可能内置此功能,是否有一个扩展可以做到这一点并逃脱我的 Google-fu 技能?

使用 Shan Khan 的 Settings Sync 插件以及超过 150 万其他人,Private gist 一直对我非常有用。 恕我直言,那已经足够好了,不需要别的。

@OmeGak我的脚本通过 bash/dotfiles 同步扩展:

https://github.com/ithinkihaveacat/dotfiles/blob/8a3c9b2cc0e88bcdc6d8c3e3faf47c6f3cc11d1c/update#L390 -L399

不是最易于使用的方法,但嘿,它适合我。 (并且不需要我创建一个帐户。)

我再次说我们需要一种无需 MS 帐户即可同步设置的方法,(使用现有的 GH 帐户)

我支持使用第一方同步选项。 我一直在使用 Shan Khan 的设置同步,虽然很好,但我最近发现了两个问题。

  1. 私人要点不会被锁定在身份验证之后。 如果有人猜到您的要点哈希,他们可以看到您的信息。
  2. 该扩展程序最近开始从我的 VSCode 中卸载内置的 TypeScript 扩展程序,我不得不关闭删除扩展程序选项来修复它。 这给我造成了几个小时的工作中断。

这个功能会在 vscode OSS 上可用吗?
我使用的是基于 musl 的 Linux 系统和 FreeBSD,两者都没有正式的 Electron 版本。

恕我直言,同步设置的最佳方法是通过 git repo
例如: JetBrains 的设置存储库
好处

  • 无需新帐户,可以使用大多数开发人员已经拥有的任何 git 服务(GitHub、Bitbucket、GitLab)
  • 可以使用私有存储库将设置保密

如果隐私是一个问题,那么它真正需要的只是一个导出/导入功能(当它进入稳定状态时确实应该提供),
因为它不需要将东西存储在外部位置。 (如果您使用远程服务器,这将包括 git)

但是,如果我想要同步事情,我更愿意首先通过构建应用程序的公司来实现,
如果我不信任那个(至少在一定程度上),那我为什么还要考虑使用他们的应用程序呢?

更不用说MS现在也拥有github,所以无论你使用MS帐户还是github帐户都没有关系。 (有要点,正如提到的那样相当不安全,这就是为什么我还没有使用它并且急切地等待这个即将推出的功能稳定)

正如@neico所说,还允许用户导出、导入他们的设置作为 zip 文件。

我建议为单独的要求创建单独的问题。 否则,那些可能无法追踪。 因此,请根据您的意愿创建单独的问题。

使用 Github 帐户会很方便,无需 MS Azure。

对于中国的开发者来说,这并不方便。

使用 Github 帐户会很方便,无需 MS Azure。

对于中国的开发者来说,这并不方便。

为什么? 我可以在中国使用 GitHub,它似乎比 MS Azure 更稳定。

@sandy081

  • 允许用户通过 git repo 同步设置: https ://github.com/microsoft/vscode/issues/93570
  • 允许用户将其设置导出、导入为 zip 文件: https ://github.com/microsoft/vscode/issues/93572

如果没有MS Azure,使用Github帐户会很方便。

对于中国的开发人员来说,这并不方便。

为什么?我可以在中国使用GitHub,它似乎比MS Azure更稳定。

在一些特殊时期会比较慢
MS Azure应该够了

我开始使用 vscode-insiders 的设置同步。 但是我马上就遇到了问题。 当我尝试在线同步 vscode-wsl 和 Visual Studio 的设置时,我无法使用环境变量来修复某些工作区文件夹的文件夹名称,例如 leetcode。 我尝试设置“leetcode.workspaceFolder”:“${ env:HOME }/go/src/github.com/rafee/leetcode”,但它不起作用。 这之前在 #2809 中提到过

除非拥有此设置的扩展可以使用 env 变量处理它们,否则不建议同步路径特定设置。

settings sync 能否同步 ssh 配置文件?

目前还没有。

哪种方法现在可以安全同步

https://gist.github.com/wonderbeyond/661c686b64cb0cabb77a43b49b16b26e

或者

https://mikefrobbins.com/2019/03/21/backup-and-synchronize-vscode-settings-with-a-github-gist/#comment -39448

我个人使用这个扩展:
shan.code-settings-sync
它非常棒,并且将我的设置保密在一个私人 github 要点上。

@elliot-labs 正如本线程前面所讨论的,秘密的 github 要点不是私人的。 Github 文档也证实了https://docs.github.com/en/github/writing-on-github/creating-gists

我使用了相同的扩展程序,但在发现它不是私人信息后从我的设置中删除了一些敏感信息。

哦,废话! 我错过了! 😬

@elliot-labs 和 @haugerbr
谢谢,
我也不知道要点不是私人的
所以现在我正在考虑编写一些脚本来将设置上传到云端
和一个脚本下载和安装

我还构建了一个程序,在启动时向我显示脚本
所以我可以把那些脚本放在那里。

伙计们, vscode-insiders同步不是一个选项吗?

我同意@escape0707。 Vs code 内部人员现在有设置同步,很快就会公开发布。 这实际上不是一个问题,并且已得到解决。

@escape0707 @jakobhviid我知道它,这正是我打算在它转移到正常的 VSCode 构建后使用的东西。 现在,我在等待时仍在使用设置同步。

设置同步(预览)功能已稳定(1.48),因此关闭。

请为其他请求或错误创建单独的问题。

@sandy081在同一个帐户中拥有单独的个人资料,这是已经请求的功能吗? 例如,如果我想使用我的 github 帐户进行身份验证,但想要单独的工作/个人资料。 现在我使用单独的帐户,我实际上更喜欢将个人/工作分开,但我可以看到人们想要多个个人资料的用例。 如果它尚不存在,我将为它打开一个功能请求。

请检查现有的设置同步问题,如果不存在,请创建一个。

找到了。 在这里标记它以防任何阅读此线程的人也有兴趣跟踪它#92393

请加入我的热烈掌声,并对添加此功能表示非常感谢(截至1.48 )。 我很激动也很高兴! 非常感谢 VS Code 团队!! 👏🏼👏🏼👏🏼

Excited Guy

但是,如果你能允许我只抱怨两个小问题:

  1. 在很短的超时时间(也许一天?)并重新启动 VS Code 后,我似乎必须重新进行身份验证。
  2. 身份验证在浏览器中进行,由于我有 tabitis 并且有时没有打开我的浏览器,这变得有点……令人讨厌。

谢谢。

我建议为您在复制步骤中面临的问题打开新问题。

此页面是否有帮助?
0 / 5 - 0 等级