settings sync扩展(shan khan版)通过github gist同步配置,需生成仅含gist权限的personal access token,上传后记录gist id;同步内容包括settings.json、快捷键、代码片段及扩展列表,但忽略敏感字段、工作区配置和本地路径依赖项。

用 Settings Sync 扩展上传配置到 Gist
VSCode 内置的 Settings Sync 功能默认用微软或 GitHub 账户同步,但如果你想要手动控制、审计变更、或避免账户绑定(比如公司设备限制 OAuth),Settings Sync 扩展是更透明的选择。它把全部配置序列化为一个 JSON 对象,存进你自己的私有 Gist,全程可控。
常见错误现象:上传后新设备下载失败,或部分插件没装上——大概率是 Personal Access Token 权限不全或过期;也可能是旧版扩展残留导致冲突。
- 安装扩展:
Settings Sync(作者 Shan Khan),不是同名但不同作者的其他插件 - 生成 GitHub Token:进入
Settings → Developer settings → Personal access tokens → Tokens (classic),勾选gist权限(仅此一项即可,无需repo) - 首次运行命令:
Sync Settings: Setup→ 选Gist→ 粘贴 token → 回车确认 - 执行
Sync Settings: Upload,成功后会输出类似Gist ID: 1234567890abcdef的提示,记下来备用
哪些配置能同步?哪些会被忽略?
Settings Sync 默认打包以下内容:用户 settings.json、keybindings.json、snippets/ 目录、已安装扩展列表(extensions 字段)、UI 状态(如打开的面板、侧边栏折叠状态)。但它不会同步:
-
extensions/文件夹里的插件二进制文件(只同步列表,重装靠网络拉取) - 工作区级配置(即项目根目录下的
.vscode/settings.json) - 语言服务器路径、自定义
python.defaultInterpreter这类依赖本地路径的设置(除非你手动写死相对路径) - 插件自身的配置文件(如
Prettier的.prettierrc或ESLint的.eslintrc.js),这些得单独纳入 Git 或 Gist
下载配置时插件没自动安装?检查这几点
执行 Sync Settings: Download 后,VSCode 可能只还原了 settings.json 和快捷键,但插件没动——这不是 bug,而是设计行为:扩展安装需显式触发,且受网络和权限限制。
- 确保新设备已登录同一 GitHub 账户(
Settings Sync本身不登录,但 VSCode 的扩展市场调用需要账户) - 检查 VSCode 是否启用了自动扩展安装:
extensions.autoUpdate和extensions.autoCheckUpdates应为true - 如果插件列表里含企业内网源或私有扩展(如
myorg.my-plugin),Settings Sync无法拉取,需手动安装 - 运行
Extensions: Show Installed Extensions,看右上角是否有 “Install all” 按钮 —— 有说明扩展列表已识别,点击即可批量安装
Gist 同步的隐蔽风险:token 泄露与配置漂移
把 settings.json 丢进 Gist 看似简单,但实际容易埋坑。最常被忽略的是:你的 settings.json 可能含敏感字段,比如 git.postCommitCommand、http.proxy、甚至硬编码的 API key(某些插件会存这里);另外,不同机器的 extensions 列表可能因系统差异(Windows/macOS/Linux)出现不兼容插件,导致下载后报错。
建议在上传前手动清理:grep -v "password\|key\|proxy\|token" ~/.vscode/settings.json;同步后首次启动,留意右下角是否弹出 “Extension compatibility issue” 提示 —— 遇到就删掉对应插件条目再重试。











