常见问题
关于使用 vsync 的常见问题和解答。
一般问题
我应该使用哪个工具作为源?
我们推荐 Claude Code,因为:
- 功能最完整(Skills、MCP、Agents、Commands)
- 简洁的 JSON 格式
- 文档完善
- 积极开发
但是,您可以使用任何支持的工具作为源。选择取决于:
- 您主要使用哪个工具编辑配置
- 哪个工具目前有最完整的设置
- 团队偏好和工作流程
vsync 会覆盖我现有的配置吗?
默认情况下,Safe 模式只创建和更新——从不删除。您的目标工具中的现有配置将更新以匹配源,但除非使用 --prune 模式,否则不会删除任何内容。
重要:直接在目标工具中所做的更改将在下次同步时被覆盖。始终在源工具中编辑。
如果我直接在目标工具中编辑配置会怎样?
目标工具中的更改将在下次同步时被覆盖。vsync 使用单向同步模型:
Source(您的编辑) → Targets(自动更新)最佳实践:始终在源工具中编辑,或使用 import 从另一个项目拉取更改。
如何切换我的源工具?
只需重新运行 init 命令:
vsync init
# 选择不同的源工具然后同步以使用新源更新所有目标。
它支持 monorepos 吗?
**是的!**每个项目可以有自己的 .vsync.json。用户级配置(~/.vsync.json)在所有项目中全局工作。
示例结构:
monorepo/
├── packages/
│ ├── frontend/
│ │ └── .vsync.json # 前端特定配置
│ └── backend/
│ └── .vsync.json # 后端特定配置
└── .vsync.json # Monorepo 根配置将 .vsync.json 提交到 git 安全吗?
**是的!**配置文件包含:
- 工具名称
- 同步偏好
- 无密钥或凭证
带密钥的 MCP 配置应使用环境变量如 ${API_KEY},这是安全提交的。
我可以双向同步吗?
不,vsync 是单向的(源 → 目标)。这是故意的,以维护清晰的配置源。
要切换方向:
- 运行
vsync init - 选择不同的源工具
- 同步以更新目标
配置问题
Project 层级和 User 层级有什么区别?
Project 层级 (.vsync.json):
- 通过 git 共享的团队配置
- 项目特定的 Skills 和集成
- 范围限定到一个项目目录
User 层级 (~/.vsync.json):
- 个人全局配置
- 在所有项目中工作
- 不与团队共享
- 适合个人偏好和全局 Skills
我可以同时使用 project 和 user 层级配置吗?
是的!它们独立运行:
# 同步项目配置
vsync sync
# 同步用户配置
vsync sync --user项目配置不会覆盖用户配置——它们是独立的层级。
如何排除特定工具?
只需不要在 target_tools 中包含它们:
{
"source_tool": "claude-code",
"target_tools": ["cursor"] // 只同步到 Cursor,不同步到 OpenCode
}同步行为问题
Safe 模式和 Prune 模式有什么区别?
Safe 模式(默认):
源: A, B, C
目标: A, B, D
结果: A, B, C, D (保留 D)Prune 模式:
源: A, B, C
目标: A, B, D
结果: A, B, C (删除 D)我如何知道更改了什么?
使用 plan 命令查看详细预览:
vsync plan或使用 --dry-run 与 sync:
vsync sync --dry-run两者都会准确显示将被创建、更新、删除或跳过的内容。
我可以在应用更改之前查看吗?
是的!默认情况下,vsync sync 会显示计划并请求确认:
📋 同步计划 (Safe 模式)
cursor:
CREATE: 1 项
UPDATE: 2 项
? 继续同步? (Y/n)使用 -y/--yes 跳过确认(用于自动化)。
MCP 问题
为什么每个工具中的环境变量看起来不同?
每个工具都有自己的变量插值语法:
| 工具 | 语法 | 示例 |
|---|---|---|
| Claude Code | ${VAR} | ${API_KEY} |
| Cursor | ${env:VAR} | ${env:API_KEY} |
| OpenCode | {env:VAR} | {env:API_KEY} |
| Codex | 无插值 | 仅直接值 |
vsync 自动在这些格式之间转换。
vsync 会暴露我的密钥吗?
不会! vsync:
- 从不展开环境变量
- 原样保留变量引用
- 仅在格式之间转换语法
- 不读取实际环境值
示例:
// 同步前(源)
{ "TOKEN": "${API_TOKEN}" }
// 同步后(目标)
{ "TOKEN": "${env:API_TOKEN}" } // 引用已保留,未展开我可以为环境变量使用默认值吗?
可以,但有限制:
// Claude Code(支持默认值)
{
"env": {
"PORT": "${PORT:-3000}"
}
}注意:Cursor 和 OpenCode 不支持默认值,因此它们将被转换为简单的变量引用:
// 同步到 Cursor(默认值语法丢失)
{
"env": {
"PORT": "${env:PORT}"
}
}Skills 和 Agents 问题
我可以同步带有自定义文件的 Skills 吗?
可以! Skills 可以包含多个文件:
my-skill/
├── SKILL.md # 主技能文件
├── template.md # 支持文件
├── examples/ # 支持目录
│ └── good.md
└── scripts/
└── helper.sh所有文件都会一起同步(或如果启用则符号链接)。
Skills 和 Agents 有什么区别?
- Skills:可复用的指令模板(所有工具都支持)
- Agents:自定义 AI 代理定义(仅 Claude Code、OpenCode)
两者都以类似方式同步,但 Agents 工具支持有限。
我可以同步 Cursor Rules 吗?
Cursor Rules(.cursorrules 文件)目前不支持。vsync 专注于:
- Skills
- MCP 服务器
- Agents
- Commands
未来版本可能会根据需求添加 Rules 支持。
故障排除
”找不到配置文件” 错误
解决方案:运行 vsync init 创建配置。
vsync init“权限被拒绝” 错误
原因:
- 目标目录没有写权限
- 符号链接需要管理员权限(在某些系统上)
解决方案:
- 检查目录权限:
ls -la ~/.cursor/ - 在 Windows 上,以管理员身份运行以使用符号链接
- 使用复制模式代替:
"use_symlinks_for_skills": false
Init 期间 “未检测到工具”
原因:工具的配置目录不存在。
解决方案:先创建目录:
mkdir -p ~/.cursor
vsync init同步挂起或超时
可能原因:
- 包含许多文件的大型 Skills
- 网络问题(如果从远程目录读取)
- 文件系统性能
解决方案:
- 使用
--dry-run测试而不写入 - 检查系统资源
- 尝试同步更少的项
格式转换问题
症状:同步的配置在目标工具中不工作。
常见问题:
- 环境变量未在目标环境中设置
- 命令路径在系统之间不同
- OpenCode 缺少必需的
type字段
解决方案:手动验证生成的配置:
# 检查写入了什么
cat .cursor/mcp.json
cat .opencode/opencode.json
cat .codex/config.toml迁移问题
如何从手动配置管理迁移?
- 选择您最完整的工具作为源
- 运行
vsync init并选择该工具 - 运行
vsync sync填充目标 - 验证目标工具中的配置
- 今后开始只在源工具中编辑
我可以在项目之间迁移吗?
可以,使用 import 命令:
cd new-project
vsync import ../old-project这会将配置从旧项目复制到您的源工具,然后您可以同步到目标。
从其他同步工具迁移呢?
vsync 不直接从其他同步工具导入,但您可以:
- 手动将配置复制到支持的工具之一
- 使用该工具作为源
- 初始化 vsync
- 同步到其他工具
性能问题
vsync 有多快?
典型同步时间:
- 首次同步:1-3 秒(复制文件)
- 增量同步:0.5-1 秒(基于哈希的跳过)
- 使用符号链接:0.3-0.5 秒(无复制)
性能取决于:
- 项数
- 文件大小
- 磁盘速度
- 目标工具数量
vsync 缓存什么吗?
是的!manifest(.vsync-cache/manifest.json)充当缓存:
- 存储所有项的 SHA256 哈希值
- 启用快速变更检测
- 允许增量同步
我如何加快同步?
- 启用符号链接:
"use_symlinks_for_skills": true - 提交 manifest:在 git 中包含
.vsync-cache/ - 使用选择性同步:只同步您需要的
- 使用 —yes 标志:跳过确认提示
还有问题?
- GitHub Issues:提问
- 文档:浏览其他文档部分
- CLI 帮助:运行
vsync --help