Live Share 默认不共享 .vscode/code-snippets 文件,仅同步工作区代码与调试状态;自定义代码片段需手动复制至协作者用户级 snippets 目录(如 Windows 的 %USERPROFILE%\AppData\Roaming\Code\User\snippets\),并确保 scope 字段正确(如 "typescript" 而非 "ts"),或通过 Settings Sync 统一云端同步。

Live Share 默认不共享 .vscode/code-snippets 文件
VSCode 的 Live Share 会话默认只同步工作区文件、调试状态和终端,.vscode/code-snippets 这类本地配置文件不会自动广播给访客。即使你在项目里放了 a.code-snippets,协作者打开后也看不到这些片段——因为 Live Share 不读取、不传输 .vscode 下的配置类 JSON 文件。
必须手动让协作者在本地启用相同片段
要让协作方能用上你的自定义片段,唯一可靠的方式是让他们把片段文件复制到自己机器的对应位置:
- Windows:
%USERPROFILE%\AppData\Roaming\Code\User\snippets\ - macOS:
$HOME/Library/Application Support/Code/User/snippets/ - Linux:
$HOME/.config/Code/User/snippets/
注意:不能只丢进项目里的 .vscode/ 目录下就完事——Live Share 不会把它当作“可执行配置”加载;必须落到用户级 snippets 目录,且语言标识符(如 "scope": "typescript")与当前文件匹配,才会触发。
scope 写错会导致片段完全不出现
常见失效原因不是 Live Share 没传,而是片段配置本身没生效:
-
"scope": "ts"是错的,正确是"scope": "typescript" -
"scope": "javascriptreact"要写成"scope": "javascriptreact"(VSCode 不识别jsx或jsr等缩写) - 如果片段想在多个语言中生效,用英文逗号分隔:
"scope": "javascript,typescript,html" - 没写
scope字段?那它只在“无语言模式”下可用,基本等于不可用
团队长期协作建议用设置同步 + 统一 snippet 命名
频繁换人共享片段时,手动复制太容易出错。更可持续的做法是:
- 开启 VSCode 内置的
Settings Sync(设置同步),把用户级 snippets 自动上传到账号云端 - 所有成员登录同一 Microsoft 账号,开启同步后,
snippets/目录内容自动一致 - 命名 snippet 文件时统一前缀,比如
team-react.code-snippets,避免和插件自带片段冲突 - 不要依赖
.vscode/code-snippets做协作分发——它既不被 Live Share 识别,也不被 Settings Sync 同步
真正起效的永远是用户级 snippets 目录里的文件,而不是项目根目录下的配置副本。这点很容易被忽略,但决定了协作时能不能按 Tab 就弹出你写的 lg 日志片段。











