侧边栏壁纸
博主头像
liveJQ博主等级

沒有乐趣,何来开始

  • 累计撰写 103 篇文章
  • 累计创建 50 个标签
  • 累计收到 2 条评论

vscode插件settings sync是如何工作的

liveJQ
2019-10-24 / 0 评论 / 0 点赞 / 23 阅读 / 2,069 字 / 正在检测是否收录...

概述

Synchronize settings, snippets, themes, icons, launch, keybindings, workspaces and extensions across machines using GitHub Gis.

若对 Settings Sync 其中的介绍不感兴趣的可以直接跳到 配置 一节

同步的核心 Gist

如果将Github仓库比作是一本书,那么 Gist  就是一页纸。Gist 没有像 Github 仓库那样有目录结构,它就像便签一样单纯记录些代码片段,这些代码片段还可以嵌入到某个网页中去,而且 Gist 同样有私有和共享的区别

注意:Gist 的私有与 Github 仓库私有存在些许差异,虽然他们通过用户名访问都不可见,形如 https://gist.github.com/livejq,但是 Gist 可以通过在 URL 后加入编号进行访问,即使是私有的

Gist Settings 与 Global Settings 的区别

  • Gist Settings 保存用户设置和工作空间设置后得到一个唯一的 Gist 编号,以后如果在不同的工作空间配置了特殊的环境,则可以创建另一个 Gist 保存起来。
  • Global Settings 保存对所有 Gist 的共同设置,例如该同步哪种扩展文件/不该同步哪个目录啊诸如此类信息

有关于对 VScode 中工作空间的理解,可以浏览相关资料。写得很详细,在此不再赘述。

同步内容

Global Settings可设置忽略同步的目录、文件或插件

用户设置目录:/home/livejq/.config/Code/User

工作空间设置目录:/home/livejq/.vscode

虽然官方介绍说还可以同步 Workspaces Folder ,但我只知道可以同步所有插件及其配置,还有用户设置目录下的所有东西。

我的 Gist 保存的文件

  1. cloudSettings 保存最后更新时间和 settings sync 版本信息
  2. extensions.json 扩展插件信息
  3. keybindings.json 和 keybindingsMac.json为空(因为我绑定了 idea 的快捷键)
  4. settings.json 用户配置文件

采集每个插件的元信息,保存到 Gist 的 extensions.json 文件中,其中一个形如:

{
    "metadata": {
        "id": "e337c67b-55c2-4fef-8949-eb260e7fb7fd",
        "publisherId": "Shan.code-settings-sync",
        "publisherDisplayName": "Shan"
    },
    "name": "code-settings-sync",
    "publisher": "Shan",
    "version": "3.4.3"
}

配置

第一次配置时,在设置完令牌后,将会为你自动创建 Gist(换句话说,即使你有 Gist 编号,不填则可以为你创建另一个配置,这些配置以后可以任意选择) 。若在 Global setting 中设置了创建 Gist 时询问名称,则会让你设置,也建议这样做(多个 Gist 时容易区别) 。

申请 Github 访问 Gist 令牌

进入 Github 用户设置令牌设置

20191024_open_personal_access_token.png

勾选 gist 创建权限

20191024_generate_github_gist_token.png

VSCode 设置

方式一:UI 设置

按 Ctr + Shift + p 选 Advanced Options

20191024_open_settings_sync_setting.png

打开设置

20191024_open_settings_sync_UI_setting.png

左边是 Gist settings,右边是 Global settings

20191024_UI_setting.png

20191024_UI_setting_end.png

小提示:选中输入框,按 Tab 键进行上下移动

方式二:json 文件设置

  1. Window:%APPDATA%\Code\User\
  2. Linux:$HOME/.config/Code/User/

Gist settings 打开 settings.json,Global settings 打开 syncLocalSettings.json

20191024_user_setting.png

我的配置

其它没有配置的则执行默认值

"sync.removeExtensions": true, # 当下载的云配置文件中没有包含此插件时则自动将其卸载
"sync.quietSync": false, # 显示同步信息
"sync.autoUpload": true, # 当本地配置有更新时自动上传到云
"sync.autoDownload": true # 每次启动VScode后自动同步云配置

如何使用

1. 上传配置: Shift + Alt + U
2. 下载配置: Shift + Alt + D
(macOS: Shift + Option + U / Shift + Option + D)

相关资料

  1. VScode官方文档之多根空间 
  2. code-settings-sync
  3. 关于 VSCode 中工作区的讲解与使用工作区还你一个轻量的 VSCode
  4. Vistual Studio Code 配置
  5. Github·Gist使用攻略
0

评论区