选中一段代码再重构:Zed Inline Assistant 让修改留在编辑位置

新工具猫目发布于 来源:Zed AI 官方资料
选区、文件引用和已有对话可以一起交给模型,不必为一次局部修改重新解释整个项目。

为什么值得关注

在明确选区内发起转换,并复用线程上下文,让小范围重构衔接当前编辑工作。

适合谁:使用Zed、希望按选区调整实现与注释的开发者

这次有哪些亮点

  • 显式选区与提示共同决定转换目标
  • 可引用文件、符号和已有线程补充上下文

使用前需要知道

Inline Assistant 使用 Zed 配置的模型提供方;外部 ACP 代理不能直接作为此功能的模型,托管服务与自带API的费用和数据条件不同。

一个函数已经写对大半,只想把重复分支合并、补上类型,或把一段注释改得清楚些。这时最方便的 AI 入口,未必是再开一轮跨文件任务。Zed 的 Inline Assistant 把动作放在当前选区:选中要改的代码,输入要求,让结果回到同一个编辑位置。

官方说明给出的工作方式很直接:将当前选区,或没有选区时的当前行,交给语言模型,再用返回内容替换。它让“要改哪里”先由编辑动作表达,提示词用来交代“要怎么改”。

选区负责范围,上下文负责含义

下面是教学情境:你在一个数据导出函数中选中几段几乎相同的条件判断,要求“合并重复逻辑,保持现有错误返回方式”。这时,模型需要的可能还有返回类型和调用方约定。Inline Assistant 支持 @ 引用文件、目录、符号、指令文件与过去线程,可以把这些材料加进同一次请求。

关键不是把全仓库都塞进来,而是把当前转换所缺的线索补上。选区告诉它处理哪段文本;类型定义说明结果必须满足什么;已有调用点帮助它保留接口。生成后,开发者仍能在原来的代码位置对照变化,检查原先几个分支是否都被覆盖。

这与边打字边出现的自动补全有区别。Zed 把后者称为 Edit Prediction,根据近期修改、访问过的文件和光标位置推测下一步。Inline Assistant 则由你主动选择材料、写出要求。一个适合接着写,一个适合明确发起一次转换。

大任务聊过的内容,也能用来精修

更有用的细节是 @thread。你可以先在 Agent Panel 讨论一个功能,再在内联修改时引用那段线程。这样,聊天里解释过的约束不必全部重新抄一遍,同时还能把实际编辑落到一小段代码上。

官方还支持多光标同时生成:同一条提示发到多个光标位置,适合散布在不同片段中的类似调整。另一个选项是配置 inline_alternatives,让多个模型为同一个请求各给一版,在界面里切换查看。它提供的是候选结果,不能因为两版相似就视为逻辑已经验证;真正要保留的是符合项目行为的一版。

Zed 的几种 AI 入口,不共用所有配置

AI 总览把原生 Agent、外部代理和内联等功能分别组织。这里有个容易踩空的地方:外部 ACP Agent 运行在线程中,不能直接拿来做 Inline Assistant 的生成。后者需要配置 Zed 的 LLM provider,可以走托管模型、自带 API、网关或受支持的其他接入路径。

因此,已经把一个外部编程代理接进 Zed,不代表内联修改也随之可用。代码编辑器、模型服务和账号费用是不同层;选本地模型也要核对相应接入能力。

我会把这个功能用在目标明确、能就地判断结果的小步改动上:从选区开始,补必要上下文,保留可读的代码差异,再运行相关检查。它的价值是让开发者不离开正在思考的代码位置,就能获得一份可继续修改的实现。

原始资料:Zed AI 官方资料

以上为编辑整理,功能、许可与使用条件以官方说明为准。

返回每日分享