入门 Zed Industries 2026-09-14 17:42:19 · 0 阅读

第27章 Zed 编辑器中的 Inline AI 代码编辑

使用概览

在编辑器、通道笔记和终端面板中,使用 {#kb assistant::InlineAssist} 打开 Inline Assistant。

Inline Assistant 会将你当前的选择范围(或当前行)发送给语言模型,并用模型的响应替换该部分内容。

入门指南

如果你是首次使用 Inline Assistant,需要先配置至少一个 LLM 提供商。 你可以通过以下方式完成配置:

  1. 使用 Zed 托管的模型,这样你就可以访问通过 Zed 计费的模型
  2. 使用 API 接入,无论是来自 Anthropic 等模型提供商,还是 OpenRouter 等模型网关。

如果你已经为 Agent Panel 配置了 LLM 提供商,那么该配置同样适用于 Inline Assistant。

外部 Agent 运行在 agent 线程中,但不可用于 Inline Assistant 的生成。Inline Assistant 使用 Zed 配置的 LLM 提供商,包括 Zed 托管的模型、提供商 API 密钥、网关、本地模型以及支持的订阅服务。

添加上下文

在 Inline Assistant 中添加上下文的方式与在 Agent Panel 中相同:

  • @提及文件、目录、历史线程、指令文件和符号
  • 粘贴剪贴板中复制的图片

你也可以在 Agent Panel 中创建线程,然后在 Inline Assistant 中通过 @thread 引用它。这样可以对大型线程中的特定更改进行细化,而无需重新解释上下文。

并行生成

Inline Assistant 可以一次生成多个更改:

多光标

当存在多个光标时,按下 {#kb assistant::InlineAssist} 会将相同的提示发送到每个光标位置,同时在这些所有位置生成更改。

这在 multibuffers 中的摘录上也能正常工作。

多模型

你可以用 Inline Assistant 同时向多个模型发送同一个提示词。

在设置文件中添加以下配置即可启用该功能(如何编辑设置文件):

{
  "agent": {
    "default_model": {
      "provider": "zed.dev",
      "model": "claude-sonnet-4-5"
    },
    "inline_alternatives": [
      {
        "provider": "zed.dev",
        "model": "gpt-5-mini"
      }
    ]
  }
}

配置了多个模型后,Inline Assistant 界面中会出现按钮,方便你在各模型的输出之间切换。

这里指定的模型始终是在 Inline Assistant 主模型之外额外使用的。主模型指的是 agent.inline_assistant_model 中设置的模型;如果未配置 Inline Assistant 模型,则使用 agent.default_model

例如,下面这份配置会在每次请求时生成三个输出:一个来自 Claude Sonnet 4.5(默认模型),一个来自 GPT-5-mini,还有一个来自 Gemini 3 Flash。

{
  "agent": {
    "default_model": {
      "provider": "zed.dev",
      "model": "claude-sonnet-4-5"
    },
    "inline_alternatives": [
      {
        "provider": "zed.dev",
        "model": "gpt-5-mini"
      },
      {
        "provider": "zed.dev",
        "model": "gemini-3-flash"
      }
    ]
  }
}

Inline Assistant 与 Edit Prediction 的区别

这两个功能都能生成内联代码,但工作方式不同:

  • Inline Assistant:由你编写提示词并选择要修改的代码,上下文完全由你掌控。
  • 编辑预测:Zed 根据你近期的更改、访问过的文件以及光标位置自动推荐编辑内容。无需手动输入指令。

核心区别:Inline Assistant 是显式的、由指令驱动;而编辑预测是自动的、基于上下文推断。

预设指令

若要创建一个用于预设指令的自定义按键绑定,可在键位映射中添加以下配置格式:

[
  {
    "context": "Editor && mode == full",
    "bindings": {
      "ctrl-shift-enter": [
        "assistant::InlineAssist",
        { "prompt": "Build a snake game" }
      ]
    }
  }
]

评论 (0)