{"id":42865006,"url":"https://github.com/sunerpy/vscode-syncing","last_synced_at":"2026-01-30T12:44:35.004Z","repository":{"id":305127150,"uuid":"1021993743","full_name":"sunerpy/vscode-syncing","owner":"sunerpy","description":"A extension for sync vscode settings, also support code-server","archived":false,"fork":false,"pushed_at":"2025-10-26T10:16:59.000Z","size":544,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-26T10:23:03.107Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sunerpy.png","metadata":{"files":{"readme":"README-CN.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-18T09:24:47.000Z","updated_at":"2025-10-26T10:16:45.000Z","dependencies_parsed_at":"2025-10-26T10:13:02.323Z","dependency_job_id":"c97415b0-8144-46c4-bf0e-7d94d5401035","html_url":"https://github.com/sunerpy/vscode-syncing","commit_stats":null,"previous_names":["sunerpy/vscode-syncing"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/sunerpy/vscode-syncing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunerpy%2Fvscode-syncing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunerpy%2Fvscode-syncing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunerpy%2Fvscode-syncing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunerpy%2Fvscode-syncing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunerpy","download_url":"https://codeload.github.com/sunerpy/vscode-syncing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunerpy%2Fvscode-syncing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28912915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-30T12:44:34.080Z","updated_at":"2026-01-30T12:44:34.994Z","avatar_url":"https://github.com/sunerpy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vscode-syncing\n\n[English](./README.md) | 简体中文\n\n\n[![CI](https://github.com/sunerpy/vscode-syncing/workflows/CI/badge.svg)](https://github.com/sunerpy/vscode-syncing/actions/workflows/ci.yml)\n[![PR Check](https://github.com/sunerpy/vscode-syncing/workflows/PR%20Check/badge.svg)](https://github.com/sunerpy/vscode-syncing/actions/workflows/pr-check.yml)\n[![Release](https://github.com/sunerpy/vscode-syncing/workflows/GitHub%20Release/badge.svg)](https://github.com/sunerpy/vscode-syncing/actions/workflows/release.yml)\n[![Nightly Build](https://github.com/sunerpy/vscode-syncing/workflows/Nightly%20Build/badge.svg)](https://github.com/sunerpy/vscode-syncing/actions/workflows/nightly.yml)\n\n`vscode-syncing` 是一个 VS Code 插件，用于在多台设备之间同步你的设置、插件、主题和代码片段。它尤其适用于远程开发场景（如 code-server）。\n\n## ✨ 功能亮点\n\n- **完整配置同步**：同步以下内容到本地或远程服务器：\n  - 用户设置（`settings.json`）\n  - 快捷键绑定（`keybindings.json`）\n  - 代码片段\n  - 插件列表（支持版本控制）\n  - 主题和配色方案\n- **高级插件管理功能**：\n  - 双重安装策略（手动安装 + API 回退）\n  - 自动禁用插件自动更新\n  - 智能版本比较与冲突解决\n  - 支持禁用/不可用插件同步（实验性）\n- **灵活的导出选项**：\n  - 导出到本地文件系统\n  - 集成 GitHub Gist\n  - 集成 GitHub 仓库\n- **智能插件过滤机制**：\n  - 用户可配置的忽略模式（支持正则表达式）\n  - 自动排除当前插件自身\n  - 智能去重与日志优化\n- **多环境支持**：\n  - **全面支持 Remote-SSH 远程开发**\n  - **自动识别 VSCode 版本与环境**\n  - 跨平台兼容（Windows、macOS、Linux）\n\n## 📦 安装方式\n\n```bash\ncode --install-extension vscode-syncing\n```\n\n或在插件市场中搜索 “vscode-syncing” 进行安装。\n\n## 🚀 快速开始\n\n1. **配置导出方式**：在设置中选择你偏好的同步方式\n2. **设置认证信息**：配置 GitHub Token 以启用 Gist 或仓库同步\n3. **导出配置**：`Ctrl+Shift+P` → 执行 “Export All Configurations”\n4. **其他设备导入**：`Ctrl+Shift+P` → 执行 “Import All Configurations”\n\n## ⚙️ 插件设置项\n\n### 基础设置\n\n| 设置项                                | 描述                                       | 默认值   |\n|---------------------------------------|--------------------------------------------|----------|\n| `vscode-syncing.exportMethod`         | 导出方式：local、gist 或 repository        | `local`  |\n| `vscode-syncing.localPath`            | 本地导出路径                                | `\"\"`     |\n| `vscode-syncing.githubToken`          | GitHub 访问令牌                             | `\"\"`     |\n| `vscode-syncing.gistId`               | GitHub Gist ID                              | `\"\"`     |\n| `vscode-syncing.repositoryName`       | GitHub 仓库名（格式：owner/repo）           | `\"\"`     |\n| `vscode-syncing.repositoryBranch`     | GitHub 仓库分支名                           | `main`   |\n\n### 高级设置\n\n| 设置项                                       | 描述                                               | 默认值   |\n|----------------------------------------------|----------------------------------------------------|----------|\n| `vscode-syncing.syncDisabledExtensions`      | **实验性**：同步禁用或不可用的插件                | `false`  |\n| `vscode-syncing.ignoredExtensions`           | 同步时忽略的插件（支持正则表达式）                 | `[]`     |\n\n### 插件忽略模式\n\n`ignoredExtensions` 支持精确匹配和正则表达式，例如：\n\n```json\n{\n  \"vscode-syncing.ignoredExtensions\": [\n    \"ms-vscode.*\",           // 忽略所有微软官方插件\n    \".*\\\\.theme\",            // 忽略所有主题插件\n    \"github.copilot\",        // 忽略特定插件\n    \".*debug.*\",             // 忽略名称中包含 debug 的插件\n    \"specific-extension-id\"  // 精确匹配\n  ]\n}\n```\n\n特性：\n\n- 🔍 **支持正则匹配**：灵活过滤插件\n- 🛡️ **自动保护机制**：自动忽略当前插件自身\n- 📝 **灵活配置**：可混合使用精确匹配和正则\n- 🚫 **忽略大小写**\n- ⚠️ **错误容忍**：非法正则自动回退为精确匹配\n\n## 🛠️ 可用命令\n\n可通过 `Ctrl+Shift+P`（或 macOS 上的 `Cmd+Shift+P`）访问以下命令：\n\n### 导入类命令\n- `Import All Configurations` - 导入全部设置、插件、主题和片段\n- `Import Extensions List` - 仅导入插件列表\n- `Import Settings` - 仅导入用户设置\n- `Import Themes` - 仅导入主题\n- `Import Snippets` - 仅导入代码片段\n\n### 导出类命令\n- `Export All Configurations` - 导出全部配置\n- `Export Extensions List` - 仅导出插件列表\n- `Export Settings` - 仅导出用户设置\n- `Export Themes` - 仅导出主题\n- `Export Snippets` - 仅导出代码片段\n\n### 配置命令\n- `Configure Export Options` - 配置导出方式及认证信息\n\n## 🧩 支持的 VSCode 版本\n\n本插件自动检测并支持以下 VSCode 版本：\n\n- **Visual Studio Code**\n- **VS Code Insiders**\n- **VS Code Exploration**\n- **VSCodium**\n- **VSCodium Insiders**\n- **Code - OSS**\n- **code-server**\n- **Remote-SSH**\n\n### Remote-SSH 支持\n\n在 Remote-SSH 模式下，插件自动识别并适配远程文件路径：\n\n- 数据目录：`~/.vscode-server/data`\n- 插件目录：`~/.vscode-server/extensions`\n- 用户设置路径：`~/.vscode-server/data/User/settings.json`\n\n无需手动干预，即可在远程服务器同步 VSCode 配置。\n\n## 🚀 高级特性\n\n### 插件版本管理机制\n\n**双重安装策略**：\n1. **主策略**：手动下载并安装指定版本插件\n2. **备选策略**：使用 VSCode API 安装最新版本（当主策略失败）\n\n**自动更新保护**：\n- 自动将插件加入 VSCode 的更新忽略列表\n- 避免同步后被自动升级\n- 保证不同设备版本一致性\n\n**智能版本冲突解决**：\n- 对比本地和远程插件版本\n- 提示用户进行决策\n- 自动处理版本不一致问题\n\n### 实验性功能：禁用插件同步\n\n开启 `syncDisabledExtensions` 后：\n\n- 会尝试同步 `extensions.json` 中被禁用但本地不存在的插件\n- 同时保持其为“禁用”状态\n- 有助于完整复制远程环境\n\n⚠️ 注意事项：\n\n- 可能会增加同步时间\n- 实验功能，建议熟练用户使用\n- 对环境一致性要求高时非常有用\n\n## 🐞 已知问题\n\n- 插件启用/禁用状态目前无法自动同步（需手动操作）\n- code-server 环境下可能需要手动指定用户目录\n- 禁用插件同步功能对部分插件兼容性有限\n\n## 🧭 故障排查\n\n### 常见问题排查指南\n（内容待补充）\n\n\n## 📝 更新日志\n\n[更新日志](./CHANGELOG.md)\n\n---\n\n## 📚 参考链接\n\n- [VS Code 插件 API](https://code.visualstudio.com/api)\n- [code-server 项目](https://github.com/coder/code-server)\n\n---\n\n**享受使用 `vscode-syncing` 带来的高效配置同步体验吧！**\n\n\n**祝你用得愉快，让开发a境始终如一！** ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunerpy%2Fvscode-syncing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunerpy%2Fvscode-syncing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunerpy%2Fvscode-syncing/lists"}