Zed 编辑器在官方公告中明确了一个变化:北京时间用户需要注意的 10 月 7 日节点之后,Edit predictions 将离开免费 Personal 计划。对许多把 Zed 当作日常主力编辑器的开发者来说,这意味着每天都会用到的 AI 编辑预测能力,从“开箱即用”变成了需要重新评估付费、自行接入模型、或者干脆关闭的功能。
这篇文章会围绕三个问题展开:Edit predictions 到底解决什么问题,为什么会被移出免费计划;10 月 7 日后有哪些可落地的替代配置;以及当预测不显示、Agent 面板打不开时,应该按照什么链路排查。如果你已经在用 Zed,这篇文章可以直接作为配置和排错参考;如果你只是听说过 Zed 的 AI 能力,文章也会解释清楚它和传统自动补全的区别。
1. 先理解 Edit predictions 与普通补全之间到底差在哪里
1.1 “编辑预测”解决的是什么问题
Zed 是一个主打低延迟和高性能的代码编辑器,但它并不只是“快”。在 AI 能力上,Zed 提供了一种叫做 Edit predictions(编辑预测)的功能。简单说,当光标停在代码中间时,编辑器会根据你最近的修改、文件内容、语法结构和工程上下文,预测你接下来要输入的文本,并以灰色幽灵文本显示在光标后面。按一下 Tab 键即可接受这段预测,按 Esc 忽略。
从用户体验上讲,这种交互有点像传统 IDE 的自动补全,但两者解决问题的层面不一样。自动补全通常面向“已知符号”的补全,例如变量名、函数名、方法名、枚举值。这些候选一般来自语言服务器(LSP)的索引,编辑器只需要在本地查询符号表,速度很快,但基本不具备“生成一段新的业务逻辑”的能力。
Edit predictions 面向的是“当前光标处最可能的后续编辑”。它不只是补全一个单词,而是可能补全一个参数列表、一条 if 分支、一段样板代码,甚至是一个完整的小函数。它也不要求你主动按快捷键,而是在你停顿时自动出现。
一个典型的例子是:
def get_user_info(user_id): user = db.query(User).filter(User.id == user_id).first() if user is None: raise ValueError(f"user {user_id} not found") # 光标停在这里时,模型可能会预测下一句: # return {"id": user.id, "name": user.name, "email": user.email}本地 LSP 能给到user.id、user.name的补全,但很难基于注释和上下文补出return {"id": user.id, "name": user.name, "email": user.email}这一整句。这类能力依赖大语言模型对代码语义的理解,而不是纯符号索引。
1.2 Edit predictions 与 Copilot 风格补全的差异
很多开发者会把 Edit predictions 和 Copilot 风格的代码补全混为一谈,因为它们在外观上都是灰色 ghots text。实际使用中,两者有如下差异:
| 对比项 | 传统自动补全 | Copilot 风格补全 | Zed Edit predictions |
|---|---|---|---|
| 触发方式 | 输入时由 LSP 触发 | 暂停输入后触发 | 暂停输入后触发,偏向“编辑中的连续预测” |
| 数据来源 | 当前文件、语言服务器索引 | 模型根据上下文生成 | 模型根据最近编辑生成 |
| 生成粒度 | 单词、短片段 | 多行代码 | 往往与最近的编辑动作关联,适合重复性修改 |
| 是否需要远程模型 | 通常不需要 | 需要 | 默认需要远程模型,也可以接本地模型 |
| 主要成本 | 本地 CPU/内存 | API 推理 | API 推理,免费计划下被逐步限制 |
需要特别注意的是,Zed 的 Edit predictions 并不是一个简单的“续写”功能。它更关注“你已经改了哪里,接下来大概率还要改哪里”。例如你正在把一组旧的函数调用改成新的参数结构,模型可能会预测你下一个光标位置需要的改动,而不是单纯按当前行往下补。
这种“编辑意图预测”的效果,往往比单纯补全一整段代码更让人感觉自然,但也意味着模型需要在每个编辑停顿点做推理。推理不是免费的,这在后面会直接影响功能的收费标准。
1.3 为什么免费计划养不起这个功能
Zed 的定位是“可协作的高性能编辑器”,它的免费 Personal 计划在过去一段时间内提供了很多 AI 能力,包括 Edit predictions。但从工程成本角度看,这类功能面临几个现实问题:
- 每个预测请求都要把代码上下文发送到模型服务端。
- 模型服务端需要 GPU 推理,请求量大时成本会迅速上升。
- 免费用户如果高频触发预测,会造成大量无效请求,浪费算力。
- 免费版很难做精细的限流,因为用户可能开着编辑器长时间不动,也可能在短时间内连续编辑。
所以,当官方说 Edit predictions 将离开免费 Personal 计划时,本质上是在做成本边界和产品分层。对于个人开发者和学习用途,这个变化确实会带来不便,但从产品逻辑上并不难理解:高频、重算力的功能不会永远由免费计划承载。
注意:这里的“离开免费计划”并不意味着功能被下线。它只是从默认免费额度中剥离,用户仍然可以通过付费套餐、自带模型接口或本地模型继续使用。
2. 10 月 7 日计划调整会影响哪些人
2.1 Personal 免费计划的边界
从标题信息看,Zed 是把 Edit predictions 从“免费 Personal 计划”中移出,而不是从 Zed 中移出。这意味着,如果你现在使用的是最基础的免费个人账户,10 月 7 日之后将无法继续使用由 Zed 托管模型的 Edit predictions 服务。
这里有一个容易混淆的点:Zed 本身是开源编辑器,你依然可以免费下载、免费编辑代码、免费使用本地功能,例如 LSP、多光标、Vim 模式、Git 集成等。受影响的只是“云端模型推理”这一层。
对普通开发者来说,直观变化是:升级到新版本或计划生效后,打开一个项目,光标停在代码中间,却不再出现 Edit predictions 的灰色预测。此时编辑器不会报错,不会弹出付费墙,只是功能静默消失。很多用户会误以为是配置坏了,其实只是免费额度里不再包含这个模型服务。
2.2 已经付费的用户会怎样
如果你的账户已经处于 Zed 的 Pro 或更高级套餐,通常不会受这次调整影响。Edit predictions 仍然由 Zed 托管的模型提供,你也不需要自己配置模型地址。
不过要注意,不同套餐包含的 AI 额度可能不同。即使你付费了,也可能存在月度请求上限、频率限制或模型版本差异。对于重度用户,需要在 Zed 的设置里查看当前计划对应的用量统计,而不要想当然认为“只要付费就完全无限制”。
2.3 哪些场景其实不受影响
以下几类场景并不会因为 Personal 计划调整而失效:
- 本地生成的代码补全:来自 LSP 的自动补全,例如 Rust Analyzer、TypeScript Language Server,完全不依赖 Zed 云端模型。
- 你自己接入的模型服务:如果你在设置中配置了自己的 API Key、Ollama 本地模型或其他 OpenAI 兼容接口,Edit predictions 仍然可以继续工作。
- 通过快捷键手动触发的 AI 功能:例如 Assistant Panel、Inline Chat 等,如果这些功能没有跟着计划调整,就仍然可以使用。
所以,与其把这看作“功能没了”,不如把它看作“默认模型服务不再免费”。对愿意折腾的开发者来说,这反而是切换到本地模型或者自带 API 的机会。
3. 先确认你的 Zed 当前版本和 AI 配置入口
3.1 版本检查:为什么先看版本再改配置
Zed 的迭代速度很快,不同版本的设置项和 AI provider 配置可能不同。网上很多配置示例来自旧版本,直接复制到新版可能不生效。所以在做任何配置之前,先确认版本。
在 Zed 中打开命令行面板:
Ctrl/Cmd + Shift + P输入Zed: About,可以查看当前版本号。也可以在终端运行:
zed --version常见输出类似:
Zed 2.1.4 (123456)这里的2.1.4是版本号,123456是构建号。如果后续配置项和本文示例不一致,优先以你本地版本的官方文档为准。不要盲目相信博客文章,包括这一篇。
3.2 配置入口:settings.json 和命令行
Zed 的配置主要通过settings.json完成。打开方式还是命令面板:
Zed: Open Settings或者在终端直接打开用户级配置文件。Zed 会创建配置文件目录:
- macOS:
~/Library/Application Support/Zed/settings.json - Linux:
~/.local/share/zed/settings.json - Windows:
%APPDATA%\Zed\settings.json
修改settings.json后,通常不需要重启 Zed,大多数配置会热生效。但如果遇到配置修改后仍然不生效,可以先执行Zed: Reload Workspace,或者重启 Zed 再验证。
3.3 网络策略:Zed 需要访问哪些服务
如果你依赖 Zed 托管的模型,那么 Zed 进程需要能够连接到对应的 API 域名。如果网络环境受限,请求可能超时,表现为 Edit predictions 迟迟不出现。
常见的排查方法是查看 Zed 自己的日志,而不是只看系统网络。Zed 会在日志中记录 AI 请求失败的原因,包括 DNS 解析失败、TLS 错误、HTTP 状态码超时等。关于日志位置,放在第 6 章详细展开。
注意:如果你在企业内网或沙箱环境使用 Zed,建议先确认防火墙是否放行了 Zed 的 AI 服务地址,再排查配置问题。否则配置再正确,请求也会在网络上失败。
4. 把 Edit predictions 切换为自带 API Key 或本地模型
4.1 配置 provider 的基本结构
在 Zed 中,编辑预测的配置通常位于settings.json的edit_predictions字段下。新版 Zed 的配置结构大致如下:
{ "edit_predictions": { "mode": "automatic", "provider": "your-provider-name", "model": "your-model-id" } }字段含义:
mode:控制 Edit predictions 的触发方式。常见值是manual或automatic。如果设置为automatic,只要满足条件就会自动显示预测;如果设置为manual,可能需要通过快捷键或命令触发。provider:指定模型服务提供方。常见值包括zed、ollama、anthropic、openai,以及一些兼容 OpenAI 接口的自定义 provider。model:指定模型 ID。不同 provider 的模型 ID 不一样。
Zed 的具体字段名和可选值会随版本调整,所以你需要在配置前先确认当前版本支持哪些 provider。不要直接照搬别人的配置,特别是 model 名称。
4.2 使用本地 Ollama 作为预测后端
如果你不想付费,也不想把代码发送到云端,最简单的方式是使用 Ollama 在本地运行一个代码模型。Ollama 启动后默认监听http://localhost:11434,Zed 可以通过 OpenAI 兼容接口访问它。
第一步,安装 Ollama 并拉取模型。以qwen2.5-coder这种常见代码模型为例:
ollama pull qwen2.5-coder:7b第二步,确认 Ollama 服务已经启动:
ollama serve如果需要常驻后台,可以设置系统服务或使用 Docker。不建议直接在终端里长时间占用前台进程。
第三步,在 Zed 的settings.json中配置:
{ "edit_predictions": { "provider": "ollama", "model": "qwen2.5-coder:7b" } }如果 Zed 的版本要求使用 OpenAI 兼容 URL,你可以配置一个自定义 provider,指向:
http://localhost:11434/v1例如:
{ "edit_predictions": { "provider": "custom", "model": "qwen2.5-coder:7b", "base_url": "http://localhost:11434/v1", "api_key": "ollama" } }不同版本对base_url的字段名可能不同,有的叫endpoint,有的叫base_url。如果修改后不生效,优先查看 Zed 日志中的请求错误。
使用本地模型时要注意硬件条件。7B 模型量化后至少需要 6 GB 左右的内存,如果同时打开浏览器和 IDE,建议 16 GB 内存起步。模型过大会导致首 token 延迟很高,Edit predictions 反而变成负担。
4.3 使用其他兼容 OpenAI 的接口
如果你有第三方模型服务的 API Key,也可以把 Edit predictions 指向自己的账户。这样代码会发送到该服务的服务器,适合对隐私要求不高、但希望获得更好模型质量的场景。
配置示例:
{ "edit_predictions": { "provider": "openai", "model": "gpt-4o-mini" } }如果你的模型服务提供了 OpenAI 兼容协议,但域名不是官方域名,那么通常还需要配置base_url和密钥环境变量。Zed 支持从环境变量中读取 API Key,例如:
export OPENAI_API_KEY="sk-..." export OPENAI_BASE_URL="https://your-api.example.com/v1"然后把 provider 配置为对应名称。要注意,不要把自己的 API Key 硬编码到settings.json中,尤其不要提交到 Git 仓库。推荐使用环境变量或 Zed 的密钥管理方式。
4.4 别忘了关闭 Zed 托管的预测开关
切换 provider 后,一个常见问题是:旧配置仍然生效,或者 Zed 默认还是会先请求自己的服务。遇到这种情况,可以先确认是否还有旧配置残留。
比如原先配置是:
{ "edit_predictions": { "provider": "zed", "model": "zed-edit-predictions" } }切换后没有删除旧字段,导致 Zed 读取到了两个互相冲突的配置。JSON 对象不允许重复键,所以通常不会同时存在,但如果你是从旧版本升级,可能会存在项目级配置与用户级配置的叠加。项目级配置的优先级更高,如果项目里.zed/settings.json中写了旧的 provider,用户级的本地配置会被覆盖。
排查方法就是分别查看用户级和项目级配置,确认没有旧 provider 残留。
推荐做法:切换配置后,先执行
Zed: Reload Workspace,再打开一个文件,光标停在代码中间,观察是否出现灰色预测。如果没有,再到日志里看请求是否成功。
5. 保留免费体验的替代路径
5.1 用普通自动补全 + 快捷键触发 AI
如果你不想为 Edit predictions 单独配置模型,也可以退回到传统自动补全:LSP 提供的补全依然免费,而且对于变量、函数、类名足够可靠。缺点是它不具备“编辑意图预测”能力,不会自动补出整段逻辑。
你可以把 AI 能力改成手动触发。Zed 的 Assistant Panel、Inline Chat 或类似功能可以选中代码后直接向模型提问。这种方式不需要在每次停顿时都发送请求,成本更低,也不会被打断。
5.2 使用内联聊天或 Assistant 面板
如果 Edit predictions 不可用,但你还想快速生成代码片段,可以:
- 选中一段代码或把光标放到目标位置。
- 打开 Assistant Panel。
- 输入类似“把这段代码改成异步版本”的指令。
- 将返回结果插入文件。
这样虽然不像 Edit predictions 那样“自动出现”,但胜在可控。它在部分场景下甚至比自动预测更高效,因为你主动描述意图,模型能更准确理解要做什么。
5.3 降级后的编辑器体验如何调整
失去 Edit predictions 后,编辑体验会有变化,但不一定变差。很多 Zed 用户可以配合以下习惯来维持效率:
- 开启多光标编辑和列选择,减少重复字符输入。
- 使用 LSP 的重命名、跳转定义、快速修复等功能。
- 为高频代码块配置 Snippet,例如
for、fn、if的补全。 - 在需要生成较长逻辑时,直接打开 Assistant Panel 或 Inline Chat,而不是等待自动预测。
对于追求效率的开发者,这套组合在大多数日常场景下并不比 Edit predictions 慢。Edit predictions 更适合特定模式:连续修改结构相似的代码,例如批量替换、批量补充字段。
6. 常见问题排查:Predictions 不显示、Agent 面板不出现
6.1 排查顺序:开关、Provider、模型、日志
当 Edit predictions 不显示时,不要先怀疑软件坏了,按下面顺序排查:
- 确认当前计划在 10 月 7 日后是否包含 Edit predictions。如果你用免费 Personal 计划且没有配置自定义 provider,那么不显示是预期行为。
- 确认
settings.json中edit_predictions配置存在,且没有拼写错误。 - 确认 provider 名称匹配 Zed 当前版本支持的写法。
- 确认模型名称存在。使用 Ollama 时,可以用
ollama list查看已拉取模型。 - 查看 Zed 日志,搜索
edit prediction、prediction、completion等关键字。
下面是常用的日志位置:
| 平台 | 日志目录 |
|---|---|
| macOS | ~/Library/Application Support/Zed/logs/ |
| Linux | ~/.local/share/zed/logs/ |
| Windows | %APPDATA%\Zed\logs\ |
查看最近日志:
tail -f ~/.local/share/zed/logs/zed.log如果日志中出现连接被拒绝,说明模型服务没有启动或端口不对;如果出现 401,说明 API Key 无效;如果出现 429,说明触发了限流。
6.2 Zed Agent 不显示时的重点检查
有些用户搜索“zed agent 不显示”,这个问题和 Edit predictions 不一定相同,但都会造成“AI 功能消失了”的观感。Agent 面板不显示,通常和以下因素有关:
- 当前版本没有开启 Agent 入口。
- 当前项目类型或语言没有可用的 Agent 上下文。
- 网络请求失败,导致面板无法加载模型状态。
- 快捷键绑定被覆盖,命令面板也找不到对应命令。
建议先从命令面板搜索:
Zed: Open Agent如果命令存在但执行后无反应,查看日志。如果命令本身不存在,可能是版本太旧或构建版本不包含 Agent 功能。
不要同时打开大量设置项去猜,日志里会有更明确的信息。如果没有日志关键字,就先更新 Zed 到最新稳定版,再验证一次。
6.3 日志怎么看:从现象倒推到原因
以一个常见场景为例:Edit predictions 一直不出现,日志里出现:
request to ollama failed: connect ECONNREFUSED 127.0.0.1:11434说明 Ollama 没有运行,或者端口被占用。解决方式是启动 Ollama:
ollama serve另一个场景:日志里出现:
model not found: qwen2.5-coder:7b说明模型没有拉取,运行:
ollama pull qwen2.5-coder:7b还有一个容易忽略的问题:Ollama 只绑定了127.0.0.1,而 Zed 配置中写的地址是localhost。大多数时候两者等价,但如果系统对localhost解析为 IPv6 的::1,而服务只监听 IPv4,就会出现连接失败。此时可以显式写成:
http://127.0.0.1:11434/v1这些排查方式对所有基于 HTTP 的模型服务都适用。记住一个原则:先确认请求有没有发出去,再确认响应是什么,最后才去怀疑 UI 渲染问题。
7. 中文使用场景与配置建议
7.1 中文输入法下候选框和快捷键冲突
在 Zed 中输入中文时,有些用户会遇到输入法候选框不跟随光标、候选框消失、或者误触 Tab 键接受预测后却把中文上屏等问题。这其实和 Edit predictions 的交互有直接关系。
当输入法处于中文输入状态时,按下 Tab 键本意是切换候选词或输入法行为,但 Zed 可能会把 Tab 解释为“接受 Edit predictions”。因此,使用中文输入法时,建议把编辑预测的接受键从 Tab 改成其他按键,或者在使用中文输入时切换到普通模式。
如果你依赖 Tab 接受预测,又经常输入中文,可以在中文输入法下关闭 Edit predictions,需要时再手动打开:
{ "edit_predictions": { "mode": "manual" } }manual模式下,预测不会自动出现,需要主动触发,这样可以避免中文输入时的误操作。
7.2 编辑器语言和拼写检查如何设置
Zed 历史上并没有像某些编辑器那样提供完整的简体中文界面包,最新版本是否加入简体中文支持,要以官方发布说明为准。如果你看到网络热词“zed 设置中文”,大概率指的是中文输入法配置,而不是界面语言。
如果需要在编辑器内正确处理中文注释的拼写检查,可以在设置中关闭英文拼写检查或把中文词库加入词典,否则中文注释会被标记为拼写错误。这是体验问题,和 Edit predictions 没有直接关系。
建议在settings.json中检查与spellcheck相关的配置,关闭对中文文件的长篇警告,避免视觉噪声影响预测结果的阅读。
7.3 不要混淆 Zed 编辑器与 Zed 单目相机
部分搜索热词里包含“zed 单目相机”,这里需要提醒一句:那是 Stereolabs 公司的 Zed 系列深度相机,和本文讨论的 Zed 代码编辑器是不同产品。
两者的配置文件、 SDK、生态完全不同。如果你搜索 Zed 的 AI 配置却看到了相机标定、深度图、SLAM 之类的内容,说明搜到了错误产品。请确认你的标题关键词是:
Zed editor Edit predictions Zed AI settings这个区分对排查问题很重要,因为很多中文资料会把两者混在一起,导致你花了很长时间找不存在的“Zed 相机编辑预测”。
8. 迁移到付费或降级成免费方案的检查清单
8.1 决策前要评估的三个指标
在 10 月 7 日之前,建议先判断自己是否真的需要 Edit predictions。可以从三个指标评估:
- 触发频率:你每天在编辑代码时,有多少次会停下来等待预测?如果很少,完全不需要付费。
- 可接受延迟:你希望预测在多少毫秒内出现?本地模型的 7B 量化版本第一次加载可能较慢,之后延迟尚可,但和 Zed 托管的高性能模型相比仍有差距。
- 隐私要求:代码片段是否会发送到第三方模型服务?如果公司要求代码不出内网,本地模型几乎是唯一选择。
把这三点列成表,决策会清晰很多。
8.2 迁移检查清单
无论你是升级套餐,还是转向本地模型,都可以按下面清单执行:
| 检查项 | 操作 |
|---|---|
| 备份配置 | 复制现有settings.json,确认可回滚 |
| 确认版本 | 查看 Zed 版本号,记录当前构建号 |
| 选择 provider | 决定是zed托管还是ollama或自定义接口 |
| 设置模型 | 确认模型名称、API 地址、API Key 来源 |
| 运行验证 | 打开项目,停顿触发预测,确认灰色文本出现 |
| 查看日志 | 检查是否有错误请求、超时、鉴权失败 |
| 输入法回归 | 切换中文输入法,测试 Tab 键是否冲突 |
| 回滚预案 | 如果效果不达预期,保留旧配置方便恢复 |
每次调整后只改一个变量,不要一次性把所有配置都改掉,否则出问题后很难定位。
8.3 后续关注点
10 月 7 日之后,建议留意以下几点:
- 官方是否把 Edit predictions 并入其他套餐,或者调整了免费额度。
- Zed 是否支持在免费计划中继续体验“每分钟有限次”的预测。
- 本地模型生态是否有更适合 Zed 的新模型,比如更小的参数、更快的推理、更好的代码生成质量。
- 你的团队是否统一使用 Zed,是否需要把配置和模型服务做成团队级方案。
对于多数个人开发者,第一条建议其实是:不要急着付费。先把本地模型跑通,体验一个完整工作日后,再决定是否值得为托管预测付费。毕竟 Edit predictions 是很强,但其它编辑方式也足以维持高效工作。