Zed 怎么用 Worktree Trust 机制控制未受信项目的语言服务器和 MCP 服务器?
发布时间:2026/9/13 11:54:41 作者:尧图编辑部 阅读量:1,286

Zed 怎么用 Worktree Trust 机制控制未受信项目的语言服务器和 MCP 服务器【免费下载链接】zedCode at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.项目地址: https://gitcode.com/GitHub_Trending/ze/zed当你把一个来路不明的目录拖进 Zed、或用zed some/path打开一个陌生项目时项目根目录下的.zed/settings.json可能要求 Zed 安装并启动语言服务器、MCP 服务器。Zed 的 Worktree Trust 机制就是用来控制这件事的所有 worktree 打开后默认处于Restricted Mode在你对它做出信任决定之前Zed 不会解析项目设置也不会下载和启动项目定义的语言服务器或 MCP 服务器。本文按「识别未受信项目 → 在安全对话框中做信任决定 → 管理信任记录」的顺序说明这个机制怎么用。Restricted Mode 到底限制了什么Zed 中的 worktree 是被 Zed 作为独立「项目」打开的目录或单个文件。每次你运行zed some/path、把文件/目录拖入 Zed、或打开用户设置文件时都会产生一个 worktree。这比 Git worktree 的范围更广——Zed 的信任模型适用于每一个被打开的文件或目录根见 git worktrees 说明。Restricted Mode 会阻止三件事项目设置.zed/settings.json被解析和应用语言服务器被安装和启动MCP 服务器被安装和启动。有一个重要例外Zed 全局安装的工具不受 worktree 信任约束。全局 MCP 服务器和全局语言服务器如 Prettier、Copilot会照常安装和启动与 worktree 是否受信无关。也就是说信任机制只管辖项目设置里声明的那部分。判断当前项目是否处于受限状态未受信的 worktree 会在标题栏显示一个感叹号图标。打开安全对话框并做信任决定点击标题栏的感叹号图标或执行workspace::ToggleWorktreeSecurity操作会打开安全对话框。对话框会列出所有受限的路径并提示你先审查项目的.zed/settings.json——那里配置了由该项目安装和启动的扩展、语言服务器与 MCP 服务器。在对话框中你有两个选择信任并继续该 worktree 的语言服务器和 MCP 服务器被允许下载和启动项目设置开始生效。文档给出的判断依据很直接worktree 受信后「language and MCP servers are permitted to be downloaded and started」留在 Restricted Mode项目继续处于受限状态相关服务器不会被启动你可以继续浏览代码而不触发项目配置。如果同一批次有多个受限项目对话框支持一次处理多个。针对多个目录 worktree可以勾选对话框中的复选框把信任范围扩大到某个父目录——这会一次性信任该父目录下的所有子目录包括当前和将来可能打开的目录 worktree。信任决定是持久的手动信任一个 worktree 会在重启之间保留。三层信任层级为什么单个文件也要单独信任信任层级从最小到最大分三层文档说明这些偏内部细节、可能变化但有助于理解多个信任请求如何被一次性批准single file worktree单文件在空窗口中打开单个文件、或在打开目录后再打开目录外的文件都会形成单文件 worktree。例如通过 {#action zed::OpenSettingsFile} 打开用户设置文件就可能为那个文件启动语言服务器并新建一个单文件 worktree。由于语言服务器存在供应链攻击风险Zed 默认对其限制每个单文件 worktree 都需要单独的信任授权除非它所在目录已受信、或所有 worktree 都被信任。directory worktree目录打开一个目录就是完整 worktree可能启动项目设置里定义的多个语言服务器和 MCP 服务器每个目录 worktree 需要单独的信任授权除非已存在父目录级别的信任。信任一个目录 worktree 后Zed 会自动为对应主机启用单文件 worktree 信任——方便你在已受信的目录里使用语言服务器功能时再打开单个文件。parent directory worktree父目录即前面对话框里复选框对应的那一层一次信任覆盖父目录下所有子目录的现有及未来 worktree。可选跳过所有信任检查不推荐默认情况下 Zed 不信任任何新 worktree必须逐个信任。如果你管理的是完全可控的项目集合可以在用户设置中打开全局开关——文档明确标注「though not recommended」session: { trust_all_worktrees: true }该设置的用户默认值是false见 session 设置参考{ restore_unsaved_buffers: true, trust_all_worktrees: false }。设置生效后的效果是项目设置自动同步语言和 MCP 服务器自动下载并启动。两点限制需要注意自动信任不会持久化。只有手动信任的 worktree 才跨重启保留这样日后你关闭trust_all_worktrees时需要对每个项目重新做信任决定这个开关写在哪里用户设置文件通过命令面板执行 {#action zed::OpenSettingsFile} 打开文件位于 macOS/Linux 的~/.config/zed/settings.jsonLinux 也可能是$XDG_CONFIG_HOME/zed/settings.json、Windows 的%APPDATA%\Zed\settings.json见 Configuring Zed。如何验证信任状态已生效文档给出的可核对依据受信的目录 worktree 会允许语言服务器和 MCP 服务器被下载并启动——即此前被 Restricted Mode 拦截的项目级服务器开始工作标题栏的感叹号图标是「未受信」的指示做出信任决定后该 worktree 不再处于受限状态反向验证执行清除命令后 Zed 会重启重启后所有 worktree 回到需要逐个信任的状态可以再次观察安全对话框是否列出它们。清除所有信任记录当你怀疑某些项目已被误信任、或想重置整个信任状态时执行workspace::ClearTrustedWorktrees命令。该命令会重启 Zed目的是确保没有任何未受信设置、语言服务器或 MCP 服务器残留运行。重启后所有 worktree 回到初始的未信任状态。适用范围与限制该机制在本地、SSH 远程主机和 WSL 远程主机上都生效远程场景下 Zed 按主机per host跟踪信任信息同一目录在不同主机上需要分别信任。信任只拦截项目设置声明的服务器与设置解析不拦截Zed 全局安装的 MCP 服务器和语言服务器。信任范围最小单位是单个 worktree想批量覆盖多个项目用父目录信任对话框复选框或trust_all_worktrees开关两者持久化行为不同按上面的说明选择。更多设置细节可参考 Zed and trusted worktrees 与 all settings 参考。【免费下载链接】zedCode at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.项目地址: https://gitcode.com/GitHub_Trending/ze/zed创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考