配置 Zed

Zed 旨在可配置:我们希望它能完全适应您的工作流程和偏好。我们提供默认设置,旨在为尽可能多的人提供舒适的起点,但我们希望您会喜欢调整它,使其感觉不可思议。

除了此处描述的设置外,您可能还希望更改您的主题,配置您的按键绑定,设置任务或安装扩展

设置编辑器

您可以通过设置编辑器浏览许多受支持的设置,设置编辑器可以通过 cmd-,|ctrl-, 快捷键打开,或通过命令面板中的 zed: open settings 操作打开。通过它,您可以自定义本地用户设置以及项目设置。

请注意,并非 Zed 支持的所有设置都已在设置编辑器中可用。一些更复杂的设置,例如语言格式化程序,只能通过 JSON 设置文件 cmd-alt-,|ctrl-alt-, 进行更改。

用户设置文件

您的设置 JSON 文件可以通过 cmd-alt-,|ctrl-alt-, 打开。默认情况下,它位于 ~/.config/zed/settings.json,但如果您在 Linux 环境中设置了 XDG_CONFIG_HOME,它将位于 $XDG_CONFIG_HOME/zed/settings.json

您添加到用户设置文件中的任何内容都将与项目中的任何本地配置合并。

默认设置

在设置编辑器中,您看到的设置值是默认值。您还可以通过从命令面板运行 zed: open default settings 来验证它们的 JSON 格式。

提供语言服务器的扩展也可以为这些语言服务器提供默认设置。

项目设置文件

与用户文件类似,您可以从命令面板运行 zed: open project settings 来打开您的项目设置文件。这将创建一个包含 .zed/settings.json.zed 目录。

尽管大多数项目只需要一个根设置文件,但您可以根据需要为子目录添加更多本地设置文件。并非所有设置都可以在本地文件中设置,只有那些影响编辑器和语言工具行为的设置。例如,您可以设置 tab_sizeformatter 等,但不能设置 themevim_mode 等。

配置文件语法是 JSON 的超集,允许使用 // 注释。

按发布渠道覆盖

Zed 在所有发布渠道(稳定版、预览版或夜间版)上读取相同的 settings.json。但是,您可以通过添加顶级 stablepreviewnightlydev 对象来将覆盖范围限定为特定渠道。它们将合并到基本配置中,并在启动指定构建时优先使用这些键中的设置。例如:

{
  "theme": "sunset",
  "vim_mode": false,
  "nightly": {
    "theme": "cave-light",
    "vim_mode": true
  },
  "preview": {
    "theme": "zed-dark"
  }
}

在此配置下,稳定版保留所有基本偏好设置,预览版切换到 zed-dark,而夜间版启用 Vim 模式并使用不同的主题。

在设置编辑器中更改设置将始终在所有渠道中应用更改。

设置

下面是 Zed 支持的许多设置的详细介绍。

活动窗格修饰符

  • 描述:应用于活动窗格的样式设置。
  • 设置:active_pane_modifiers
  • 默认值
{
  "active_pane_modifiers": {
    "border_size": 0.0,
    "inactive_opacity": 1.0
  }
}

边框大小

  • 描述:活动窗格周围边框的大小。设置为 0 时,活动窗格没有边框。边框是内嵌绘制的。
  • 设置:border_size
  • 默认值:0.0

选项

非负 float

非活动透明度

  • 描述:非活动面板的透明度。设置为 1.0 时,非活动窗格与活动窗格具有相同的透明度。如果设置为 0,则非活动窗格内容将完全不可见。值被限制在 [0.0, 1.0] 范围内。
  • 设置:inactive_opacity
  • 默认值:1.0

选项

float

底部停靠布局

  • 描述:控制底部停靠相对于左右停靠的布局。
  • 设置:bottom_dock_layout
  • 默认值:"contained"

选项

  1. 包含底部停靠,将窗口的完整高度留给左右停靠。
{
  "bottom_dock_layout": "contained"
}
  1. 将窗口的完整宽度留给底部停靠,截断左右停靠。
{
  "bottom_dock_layout": "full"
}
  1. 左对齐底部停靠,截断左停靠,并将窗口的完整高度留给右停靠。
{
  "bottom_dock_layout": "left_aligned"
}
  1. 右对齐底部停靠,将窗口的完整高度留给左停靠,并截断右停靠。
{
  "bottom_dock_layout": "right_aligned"
}

Agent 字体大小

  • 描述:Agent 面板中文本的字体大小。如果未设置,则继承 UI 字体大小。
  • 设置:agent_font_size
  • 默认值:null

选项

6100 像素(含)的 integer

允许重排

  • 描述:控制在当前语言范围内何时允许 editor: rewrap 操作
  • 设置:allow_rewrap
  • 默认值:"in_comments"

选项

  1. 只在注释中允许重排
{
  "allow_rewrap": "in_comments"
}
  1. 只在选中内容中允许重排
{
  "allow_rewrap": "in_selections"
}
  1. 在任何地方都允许重排
{
  "allow_rewrap": "anywhere"
}

注意:此设置在 Vim 模式下无效,因为在 Vim 模式下已允许在任何地方重排。

自动缩进

  • 描述:是否应根据输入时的上下文调整缩进。这可以按语言指定。
  • 设置:auto_indent
  • 默认值:true

选项

boolean

粘贴时自动缩进

  • 描述:是否应根据上下文调整粘贴内容的缩进
  • 设置:auto_indent_on_paste
  • 默认值:true

选项

boolean

自动安装扩展

  • 描述:定义要自动安装或从不安装的扩展。
  • 设置:auto_install_extension
  • 默认值:{ "html": true }

选项

您可以通过列出 扩展安装位置 下的子文件夹来查找当前已安装扩展的名称

在 macOS 上

ls ~/Library/Application\ Support/Zed/extensions/installed/

在 Linux 上

ls ~/.local/share/zed/extensions/installed

定义应安装 (true) 或从不安装 (false) 的扩展。

{
  "auto_install_extensions": {
    "html": true,
    "dockerfile": true,
    "docker-compose": false
  }
}

自动保存

  • 描述:何时自动保存已编辑的缓冲区。
  • 设置:autosave
  • 默认值:off

选项

  1. 要禁用自动保存,将其设置为 off
{
  "autosave": "off"
}
  1. 要在焦点改变时自动保存,请使用 on_focus_change
{
  "autosave": "on_focus_change"
}
  1. 要在活动窗口改变时自动保存,请使用 on_window_change
{
  "autosave": "on_window_change"
}
  1. 要在不活动期后自动保存,请使用 after_delay
{
  "autosave": {
    "after_delay": {
      "milliseconds": 1000
    }
  }
}

请注意,当未保存的标签页关闭时,即使早于配置的不活动期,也会触发保存。

点击时自动滚动

  • 描述:当点击可见文本区域边缘附近时是否滚动。
  • 设置:autoscroll_on_clicks
  • 默认值:false

选项

boolean

自动签名帮助

  • 描述:在括号内时,在编辑器中显示方法签名
  • 设置:auto_signature_help
  • 默认值:false

选项

boolean

编辑后显示签名帮助

  • 描述:是否在完成或插入括号对后显示签名帮助。如果 auto_signature_help 已启用,此设置也将被视为已启用。
  • 设置:show_signature_help_after_edits
  • 默认值:false

选项

boolean

自动更新

  • 描述:是否自动检查更新。
  • 设置:auto_update
  • 默认值:true

选项

boolean

基础键映射

  • 描述:基础按键绑定方案。基础键映射可以通过用户键映射覆盖。
  • 设置:base_keymap
  • 默认值:VSCode

选项

  1. VS Code
{
  "base_keymap": "VSCode"
}
  1. Atom
{
  "base_keymap": "Atom"
}
  1. JetBrains
{
  "base_keymap": "JetBrains"
}
{
  "base_keymap": "None"
}
  1. Sublime Text
{
  "base_keymap": "SublimeText"
}
  1. TextMate
{
  "base_keymap": "TextMate"
}

缓冲区字体系列

  • 描述:用于在编辑器中渲染文本的字体名称。
  • 设置:buffer_font_family
  • 默认值:.ZedMono。目前它别名为Lilex

选项

用户系统上安装的任何字体系列名称,或 ".ZedMono"

缓冲区字体特性

  • 描述:在编辑器中为文本启用的 OpenType 特性。
  • 设置:buffer_font_features
  • 默认值:null
  • 平台:macOS 和 Windows。

选项

Zed 支持所有可以为给定缓冲区或终端字体启用或禁用的 OpenType 特性,以及设置字体特性值。

例如,要禁用字体连字,请将以下内容添加到您的设置中

{
  "buffer_font_features": {
    "calt": false
  }
}

您还可以设置其他 OpenType 特性,例如将 cv01 设置为 7

{
  "buffer_font_features": {
    "cv01": 7
  }
}

缓冲区字体回退

  • 描述:设置缓冲区文本的字体回退,这将与平台的默认回退合并。
  • 设置:buffer_font_fallbacks
  • 默认值:null
  • 平台:macOS 和 Windows。

选项

例如,要使用 Nerd Font 作为回退,请将以下内容添加到您的设置中

{
  "buffer_font_fallbacks": ["Nerd Font"]
}

缓冲区字体大小

  • 描述:编辑器中文本的默认字体大小。
  • 设置:buffer_font_size
  • 默认值:15

选项

6100 像素(含)的字体大小

缓冲区字体粗细

  • 描述:编辑器中文本的默认字体粗细。
  • 设置:buffer_font_weight
  • 默认值:400

选项

100900 之间的 integer

缓冲区行高

  • 描述:编辑器中文本的默认行高。
  • 设置:buffer_line_height
  • 默认值:"comfortable"

选项

"standard", "comfortable"{ "custom": float } (1 是紧凑型, 2 是宽松型)

居中布局

  • 描述:居中布局模式的配置。
  • 设置:centered_layout
  • 默认值
"centered_layout": {
  "left_padding": 0.2,
  "right_padding": 0.2,
}

选项

当激活居中布局模式时,left_paddingright_padding 选项定义中心窗格相对于工作区的左右填充的相对宽度。有效值范围为 00.4

文件删除时关闭

  • 描述:当文件从磁盘中删除时,是否自动关闭相应的编辑器标签页。
  • 设置:close_on_file_delete
  • 默认值:false

选项

boolean

启用此设置后,将自动关闭已从文件系统删除的文件对应的标签页。这对于涉及频繁创建和删除的临时或草稿文件的工作流程特别有用。禁用(默认)时,已删除的文件仍将保持打开状态,其标签页标题上带有删除线。

注意:即使启用此设置,脏文件(有未保存更改的文件)也不会自动关闭,以确保您不会丢失未保存的工作。

确认退出

  • 描述:在关闭应用程序之前是否提示用户确认。
  • 设置:confirm_quit
  • 默认值:false

选项

boolean

诊断最大严重性

  • 描述:用于过滤掉编辑器中显示的诊断信息的级别
  • 设置:diagnostics_max_severity
  • 默认值:null

选项

  1. 允许所有诊断(默认)
{
  "diagnostics_max_severity": "all"
}
  1. 只显示错误
{
  "diagnostics_max_severity": "error"
}
  1. 显示错误和警告
{
  "diagnostics_max_severity": "warning"
}
  1. 显示错误、警告和信息
{
  "diagnostics_max_severity": "info"
}
  1. 显示所有,包括提示
{
  "diagnostics_max_severity": "hint"
}

禁用人工智能

  • 描述:是否禁用 Zed 中的所有 AI 功能
  • 设置:disable_ai
  • 默认值:false

选项

boolean

Direnv 集成

  • 描述:direnv 集成的设置。需要安装 direnvdirenv 集成使得可以使用 direnv 配置设置的环境变量来检测 $PATH 中的某些语言服务器,而不是安装它们。它还允许在任务中使用这些环境变量。
  • 设置:load_direnv
  • 默认值:"direct"

选项

有两种选项可供选择

  1. shell_hook:使用 shell 钩子加载 direnv。这依赖于 direnv 在进入目录时激活。支持 POSIX shell 和 fish。
  2. direct:使用 direnv export json 加载 direnv。这将直接加载 direnv,而不依赖于 shell 钩子,可能会导致一些不一致。这允许 direnv 与任何 shell 一起工作。

多缓冲区双击

  • 描述:在多缓冲区的某些摘录(单例缓冲区的一部分)中双击时执行的操作
  • 设置:double_click_in_multibuffer
  • 默认值:"select"

选项

  1. 行为与常规缓冲区相同,选择整个单词(默认)
{
  "double_click_in_multibuffer": "select"
}
  1. 在新标签页中将点击的摘录作为新缓冲区打开
{
  "double_click_in_multibuffer": "open"
}

对于“打开”的情况,可以通过在双击时按住 alt 来实现常规选择行为。

拖放目标大小

  • 描述:编辑器中拖放目标(将拖放文件作为分割窗格打开)的相对大小(0-0.5)。例如,0.25 意味着如果您拖放到窗格的顶部/底部四分之一,将使用新的垂直分割;如果您拖放到窗格的左侧/右侧四分之一,将使用新的水平分割。
  • 设置:drop_target_size
  • 默认值:0.2

选项

00.5 之间的 float

编辑预测

  • 描述:编辑预测的设置。
  • 设置:edit_predictions
  • 默认值
  "edit_predictions": {
    "disabled_globs": [
      "**/.env*",
      "**/*.pem",
      "**/*.key",
      "**/*.cert",
      "**/*.crt",
      "**/.dev.vars",
      "**/secrets.yml"
    ]
  }

选项

禁用的 Glob 模式

  • 描述:一个 glob 模式列表,将禁用这些模式的编辑预测。此列表添加到一个预设的、合理的默认 glob 模式集。您添加的任何额外模式都将与它们合并。
  • 设置:disabled_globs
  • 默认值:["**/.env*", "**/*.pem", "**/*.key", "**/*.cert", "**/*.crt", "**/.dev.vars", "**/secrets.yml"]

选项

string 值列表。

编辑预测禁用范围

  • 描述:一个语言作用域列表,将在其中禁用编辑预测。
  • 设置:edit_predictions_disabled_in
  • 默认值:[]

选项

string 值列表

  1. 不在注释中显示编辑预测
"disabled_in": ["comment"]
  1. 不在字符串和注释中显示编辑预测
"disabled_in": ["comment", "string"]
  1. 仅在 Go 中,不在字符串和注释中显示编辑预测
{
  "languages": {
    "Go": {
      "edit_predictions_disabled_in": ["comment", "string"]
    }
  }
}

当前行高亮

  • 描述:如何在编辑器中高亮显示当前行。
  • 设置:current_line_highlight
  • 默认值:all

选项

  1. 不高亮显示当前行
"current_line_highlight": "none"
  1. 高亮显示边栏区域
"current_line_highlight": "gutter"
  1. 高亮显示编辑器区域
"current_line_highlight": "line"
  1. 高亮显示整行
"current_line_highlight": "all"

选择高亮

  • 描述:是否在编辑器中高亮显示所选文本的所有出现。
  • 设置:selection_highlight
  • 默认值:true

圆角选择

  • 描述:文本选择是否应具有圆角。
  • 设置:rounded_selection
  • 默认值:true
  • 描述:光标是否闪烁。
  • 设置:cursor_blink
  • 默认值:true

选项

boolean

光标形状

  • 描述:默认编辑器的光标形状。
  • 设置:cursor_shape
  • 默认值:bar

选项

  1. 垂直条
"cursor_shape": "bar"
  1. 包围下一个字符的块
"cursor_shape": "block"
  1. 沿下一个字符延伸的下划线
"cursor_shape": "underline"
  1. 在下一个字符周围绘制的框
"cursor_shape": "hollow"

侧边栏

  • 描述:编辑器侧边栏的设置
  • 设置:gutter
  • 默认值
{
  "gutter": {
    "line_numbers": true,
    "runnables": true,
    "breakpoints": true,
    "folds": true,
    "min_line_number_digits": 4
  }
}

选项

  • line_numbers:是否在侧边栏显示行号
  • runnables:是否在侧边栏显示可运行按钮
  • breakpoints:是否在侧边栏显示断点
  • folds:是否在侧边栏显示折叠按钮
  • min_line_number_digits:侧边栏中为行号保留的最小字符数

隐藏鼠标

  • 描述:确定何时在编辑器或输入框中隐藏鼠标光标。
  • 设置:hide_mouse
  • 默认值:on_typing_and_movement

选项

  1. 从不隐藏鼠标光标
"hide_mouse": "never"
  1. 只在打字时隐藏
"hide_mouse": "on_typing"
  1. 在打字和光标移动时都隐藏
"hide_mouse": "on_typing_and_movement"

代码片段排序顺序

  • 描述:确定代码片段相对于其他完成项的排序方式。
  • 设置:snippet_sort_order
  • 默认值:inline

选项

  1. 将代码片段置于完成列表顶部
"snippet_sort_order": "top"
  1. 正常放置代码片段,无任何偏好
"snippet_sort_order": "inline"
  1. 将代码片段置于完成列表底部
"snippet_sort_order": "bottom"
  1. 完全不在完成列表中显示代码片段
"snippet_sort_order": "none"

编辑器滚动条

  • 描述:是否显示编辑器滚动条及其中的各种元素。
  • 设置:scrollbar
  • 默认值
"scrollbar": {
  "show": "auto",
  "cursors": true,
  "git_diff": true,
  "search_results": true,
  "selected_text": true,
  "selected_symbol": true,
  "diagnostics": "all",
  "axes": {
    "horizontal": true,
    "vertical": true,
  },
},

显示模式

  • 描述:何时显示编辑器滚动条。
  • 设置:show
  • 默认值:auto

选项

  1. 如果存在重要信息或遵循系统配置的行为,则显示滚动条
"scrollbar": {
  "show": "auto"
}
  1. 匹配系统配置的行为
"scrollbar": {
  "show": "system"
}
  1. 始终显示滚动条
"scrollbar": {
  "show": "always"
}
  1. 从不显示滚动条
"scrollbar": {
  "show": "never"
}

光标指示器

  • 描述:是否在滚动条中显示光标位置。
  • 设置:cursors
  • 默认值:true

选项

boolean

Git Diff 指示器

  • 描述:是否在滚动条中显示 git diff 指示器。
  • 设置:git_diff
  • 默认值:true

选项

boolean

搜索结果指示器

  • 描述:是否在滚动条中显示缓冲区搜索结果。
  • 设置:search_results
  • 默认值:true

选项

boolean

选定文本指示器

  • 描述:是否在滚动条中显示选定文本的出现。
  • 设置:selected_text
  • 默认值:true

选项

boolean

选定符号指示器

  • 描述:是否在滚动条中显示选定符号的出现。
  • 设置:selected_symbol
  • 默认值:true

选项

boolean

诊断

  • 描述:要在滚动条中显示的诊断指示器。
  • 设置:diagnostics
  • 默认值:all

选项

  1. 显示所有诊断
{
  "show_diagnostics": "all"
}
  1. 不显示任何诊断
{
  "show_diagnostics": "off"
}
  1. 只显示错误
{
  "show_diagnostics": "error"
}
  1. 只显示错误和警告
{
  "show_diagnostics": "warning"
}
  1. 只显示错误、警告和信息
{
  "show_diagnostics": "info"
}

  • 描述:强制启用或禁用每个轴的滚动条
  • 设置:axes
  • 默认值
"scrollbar": {
  "axes": {
    "horizontal": true,
    "vertical": true,
  },
}

水平

  • 描述:如果为 false,则强制禁用水平滚动条。否则,遵循其他设置。
  • 设置:horizontal
  • 默认值:true

选项

boolean

垂直

  • 描述:如果为 false,则强制禁用垂直滚动条。否则,遵循其他设置。
  • 设置:vertical
  • 默认值:true

选项

boolean

迷你地图

  • 描述:与编辑器迷你地图相关的设置,它提供文档概览。
  • 设置:minimap
  • 默认值
{
  "minimap": {
    "show": "never",
    "thumb": "always",
    "thumb_border": "left_open",
    "current_line_highlight": null
  }
}

显示模式

  • 描述:何时在编辑器中显示迷你地图。
  • 设置:show
  • 默认值:never

选项

  1. 始终显示迷你地图
{
  "show": "always"
}
  1. 如果编辑器滚动条可见,则显示迷你地图
{
  "show": "auto"
}
  1. 从不显示迷你地图
{
  "show": "never"
}

缩略图显示

  • 描述:何时在迷你地图中显示迷你地图缩略图(可见编辑器区域)。
  • 设置:thumb
  • 默认值:always

选项

  1. 将鼠标悬停在迷你地图上时显示迷你地图缩略图
{
  "thumb": "hover"
}
  1. 始终显示迷你地图缩略图
{
  "thumb": "always"
}

缩略图边框

  • 描述:迷你地图缩略图边框的外观。
  • 设置:thumb_border
  • 默认值:left_open

选项

  1. 在缩略图所有侧面显示边框
{
  "thumb_border": "full"
}
  1. 在除左侧外的所有侧面显示边框
{
  "thumb_border": "left_open"
}
  1. 在除右侧外的所有侧面显示边框
{
  "thumb_border": "right_open"
}
  1. 只在左侧显示边框
{
  "thumb_border": "left_only"
}
  1. 不带任何边框显示缩略图
{
  "thumb_border": "none"
}

当前行高亮

  • 描述:如何在迷你地图中高亮显示当前行。
  • 设置:current_line_highlight
  • 默认值:null

选项

  1. 继承编辑器的当前行高亮设置
{
  "minimap": {
    "current_line_highlight": null
  }
}
  1. 在迷你地图中高亮显示当前行
{
  "minimap": {
    "current_line_highlight": "line"
  }
}

{
  "minimap": {
    "current_line_highlight": "all"
  }
}
  1. 不在迷你地图中高亮显示当前行
{
  "minimap": {
    "current_line_highlight": "gutter"
  }
}

{
  "minimap": {
    "current_line_highlight": "none"
  }
}

编辑器标签栏

  • 描述:与编辑器标签栏相关的设置。
  • 设置:tab_bar
  • 默认值
"tab_bar": {
  "show": true,
  "show_nav_history_buttons": true,
  "show_tab_bar_buttons": true
}

显示

  • 描述:是否在编辑器中显示标签栏。
  • 设置:show
  • 默认值:true

选项

boolean

  • 描述:是否显示导航历史按钮。
  • 设置:show_nav_history_buttons
  • 默认值:true

选项

boolean

标签栏按钮

  • 描述:是否显示标签栏按钮。
  • 设置:show_tab_bar_buttons
  • 默认值:true

选项

boolean

编辑器标签

  • 描述:编辑器标签页的配置。
  • 设置:tabs
  • 默认值
"tabs": {
  "close_position": "right",
  "file_icons": false,
  "git_status": false,
  "activate_on_close": "history",
  "show_close_button": "hover",
  "show_diagnostics": "off"
},

关闭位置

  • 描述:在标签页中显示关闭按钮的位置。
  • 设置:close_position
  • 默认值:right

选项

  1. 在右侧显示关闭按钮
{
  "close_position": "right"
}
  1. 在左侧显示关闭按钮
{
  "close_position": "left"
}

文件图标

  • 描述:是否显示标签页的文件图标。
  • 设置:file_icons
  • 默认值:false

Git 状态

  • 描述:是否在标签页中显示 Git 文件状态。
  • 设置:git_status
  • 默认值:false

关闭时激活

  • 描述:关闭当前标签页后执行的操作。
  • 设置:activate_on_close
  • 默认值:history

选项

  1. 激活之前打开的标签页
{
  "activate_on_close": "history"
}
  1. 如果存在右侧邻近标签页,则激活它
{
  "activate_on_close": "neighbour"
}
  1. 如果存在左侧邻近标签页,则激活它
{
  "activate_on_close": "left_neighbour"
}

显示关闭按钮

  • 描述:控制标签页关闭按钮的外观行为。
  • 设置:show_close_button
  • 默认值:hover

选项

  1. 仅在鼠标悬停在标签页上时显示
{
  "show_close_button": "hover"
}
  1. 持续显示
{
  "show_close_button": "always"
}
  1. 从不显示,即使悬停也一样
{
  "show_close_button": "hidden"
}

显示诊断信息

  • 描述:是否在标签页中显示诊断指示器。此设置仅在文件图标激活时有效,并控制标记哪些存在诊断问题的文件。
  • 设置:show_diagnostics
  • 默认值:off

选项

  1. 不标记任何文件
{
  "show_diagnostics": "off"
}
  1. 只标记有错误的文件
{
  "show_diagnostics": "errors"
}
  1. 标记有错误和警告的文件
{
  "show_diagnostics": "all"
}

显示内联代码操作

  • 描述:是否在缓冲区行开头显示代码操作按钮。
  • 设置:inline_code_actions
  • 默认值:true

选项

boolean

拖放选择

  • 描述:是否允许在缓冲区中拖放文本选择。delay 是允许拖放之前必须经过的毫秒数。否则,将创建一个新的文本选择。
  • 设置:drag_and_drop_selection
  • 默认值
"drag_and_drop_selection": {
  "enabled": true,
  "delay": 300
}

编辑器工具栏

  • 描述:是否在编辑器工具栏中显示各种元素。
  • 设置:toolbar
  • 默认值
"toolbar": {
  "breadcrumbs": true,
  "quick_actions": true,
  "selections_menu": true,
  "agent_review": true,
  "code_actions": false
},

选项

每个选项控制特定工具栏元素的显示。如果所有元素都隐藏,则不显示编辑器工具栏。

使用系统标签页

  • 描述:是否允许窗口根据用户的标签页偏好进行标签页分组(仅限 macOS)。
  • 设置:use_system_window_tabs
  • 默认值:false

选项

此设置启用与 macOS 本机窗口标签页功能的集成。当设置为 true 时,Zed 窗口可以根据用户设置的全系统标签页偏好(例如“始终”、“全屏”或“从不”)在单个 macOS 窗口中作为标签页分组在一起。此设置仅在 macOS 上可用。

启用语言服务器

  • 描述:是否使用语言服务器提供代码智能。
  • 设置:enable_language_server
  • 默认值:true

选项

boolean

保存时确保最终换行

  • 描述:删除文件末尾仅包含空白的任何行,并确保末尾只有一个换行符。
  • 设置:ensure_final_newline_on_save
  • 默认值:true

选项

boolean

展开摘录行

  • 描述:在多缓冲区中默认展开摘录的行数
  • 设置:expand_excerpt_lines
  • 默认值:5

选项

integer

摘录上下文行

  • 描述:在多缓冲区中显示摘录时提供的上下文行数。
  • 设置:excerpt_context_lines
  • 默认值:2

选项

介于 1 和 32 之间的正 integer 值。超出此范围的值将被钳制到此范围。

换行时延伸注释

  • 描述:当前一行是注释时,新行是否也以注释开头。
  • 设置:extend_comment_on_newline
  • 默认值:true

选项

boolean

状态栏

  • 描述:控制状态栏中的各种元素。请注意,状态栏中的某些项目有其自身的设置,这些设置在其他地方设置。
  • 设置:status_bar
  • 默认值
"status_bar": {
  "active_language_button": true,
  "cursor_position_button": true,
  "line_endings_button": false
},

有一个实验性设置可以完全隐藏状态栏。这会导致严重的可用性问题(您将无法使用 Zed 的许多功能),但为了那些将屏幕空间置于一切之上的人而提供。

"status_bar": {
  "experimental.show": false
}

LSP

  • 描述:语言服务器的配置。
  • 设置:lsp
  • 默认值:null

选项

以下设置可以为特定的语言服务器覆盖

  • initialization_options
  • settings

要覆盖语言服务器的配置,请为该语言服务器的名称添加一个条目到 lsp 值。

某些选项通过 initialization_options 传递给语言服务器。这些选项必须在语言服务器启动时指定,并且更改后需要重新启动语言服务器。

例如,要将 check 选项传递给 rust-analyzer,请使用以下配置

"lsp": {
  "rust-analyzer": {
    "initialization_options": {
      "check": {
        "command": "clippy" // rust-analyzer.check.command (default: "check")
      }
    }
  }
}

而其他选项可以在运行时更改,并应放在 settings

"lsp": {
  "yaml-language-server": {
    "settings": {
      "yaml": {
        "keyOrdering": true // Enforces alphabetical ordering of keys in maps
      }
    }
  }
}

全局 LSP 设置

  • 描述:适用于所有语言服务器的全局 LSP 设置配置
  • 设置:global_lsp_settings
  • 默认值
{
  "global_lsp_settings": {
    "button": true
  }
}

选项

  • button:是否在状态栏中显示 LSP 状态按钮

LSP 高亮去抖

  • 描述:根据当前光标位置从语言服务器查询高亮之前的去抖延迟(毫秒)。
  • 设置:lsp_highlight_debounce
  • 默认值:75

选项

表示毫秒的 integer

功能

  • 描述:可以全局启用或禁用的功能
  • 设置:features
  • 默认值
{
  "features": {
    "edit_prediction_provider": "zed"
  }
}

编辑预测提供者

  • 描述:使用哪个编辑预测提供者
  • 设置:edit_prediction_provider
  • 默认值:"zed"

选项

  1. 使用 Zeta 作为编辑预测提供者
{
  "features": {
    "edit_prediction_provider": "zed"
  }
}
  1. 使用 Copilot 作为编辑预测提供者
{
  "features": {
    "edit_prediction_provider": "copilot"
  }
}
  1. 使用 Supermaven 作为编辑预测提供者
{
  "features": {
    "edit_prediction_provider": "supermaven"
  }
}
  1. 关闭所有提供者的编辑预测
{
  "features": {
    "edit_prediction_provider": "none"
  }
}

保存时格式化

  • 描述:是否在保存前执行缓冲区格式化。
  • 设置:format_on_save
  • 默认值:on

选项

  1. on,启用保存时格式化,遵循 formatter 设置
{
  "format_on_save": "on"
}
  1. off,禁用保存时格式化
{
  "format_on_save": "off"
}

格式化程序

  • 描述:如何执行缓冲区格式化。
  • 设置:formatter
  • 默认值:auto

选项

  1. 要使用当前语言服务器,请使用 "language_server"
{
  "formatter": "language_server"
}
  1. 或者使用外部命令,请使用 "external"。指定要运行的格式化程序的名称,以及传递给程序的参数数组。缓冲区的文本将通过标准输入传递给程序,格式化后的输出应写入标准输出。例如,以下命令将使用 sed(1) 删除尾随空格
{
  "formatter": {
    "external": {
      "command": "sed",
      "arguments": ["-e", "s/ *$//"]
    }
  }
}
  1. 外部格式化程序可以选择包含 {buffer_path} 占位符,该占位符在运行时将包含正在格式化的缓冲区的路径。格式化程序通过标准输入接收文件内容,对其进行重新格式化,然后将其输出到标准输出,因此通常不知道它们正在格式化的文件名。像 Prettier 这样的工具支持通过命令行参数接收文件路径,然后可以使用该路径来影响格式化决策。

警告:不应使用 {buffer_path} 来指示格式化程序从文件名读取。您的格式化程序应只从标准输入读取,不应直接读取或写入文件。

  "formatter": {
    "external": {
      "command": "prettier",
      "arguments": ["--stdin-filepath", "{buffer_path}"]
    }
  }
  1. 或者使用连接的语言服务器提供的代码操作,请使用 "code_actions"
{
  "formatter": [
    // Use ESLint's --fix:
    { "code_action": "source.fixAll.eslint" },
    // Organize imports on save:
    { "code_action": "source.organizeImports" }
  ]
}
  1. 或者连续使用多个格式化程序,请使用格式化程序数组
{
  "formatter": [
    { "language_server": { "name": "rust-analyzer" } },
    {
      "external": {
        "command": "sed",
        "arguments": ["-e", "s/ *$//"]
      }
    }
  ]
}

这里,rust-analyzer 将首先用于格式化代码,然后调用 sed。如果任何格式化程序失败,后续的格式化程序仍将执行。

自动关闭

  • 描述:键入开括号、方括号、花括号、单引号或双引号字符时,是否自动添加匹配的闭合字符。
  • 设置:use_autoclose
  • 默认值:true

选项

boolean

始终将括号视为自动关闭

  • 描述:控制编辑器如何处理自动关闭的字符。
  • 设置:always_treat_brackets_as_autoclosed
  • 默认值:false

选项

boolean

示例

如果设置设置为 true

  1. 在编辑器中输入:)))
  2. 将光标移动到开头:^)))
  3. 再次输入:)))

结果仍然是 ))) 而不是 )))))),这是默认情况下的结果。

文件扫描排除项

  • 设置:file_scan_exclusions
  • 描述:Zed 将完全排除的文件或文件通配符。它们将在文件扫描、文件搜索中跳过,并且不会显示在项目文件树中。覆盖 file_scan_inclusions
  • 默认值
"file_scan_exclusions": [
  "**/.git",
  "**/.svn",
  "**/.hg",
  "**/.jj",
  "**/CVS",
  "**/.DS_Store",
  "**/Thumbs.db",
  "**/.classpath",
  "**/.settings"
],

请注意,在 settings.json 中指定 file_scan_exclusions 将覆盖默认值(如上所示)。如果您要排除其他项目,则需要在设置中包含所有默认值。

文件扫描包含项

  • 设置:file_scan_inclusions
  • 描述:Zed 将包含的文件或文件通配符,即使它们被 git 忽略。这对于不受 git 跟踪但对项目仍然重要的文件很有用。请注意,过于宽泛的通配符会减慢 Zed 的文件扫描速度。file_scan_exclusions 优先于这些包含项。
  • 默认值
"file_scan_inclusions": [".env*"],

文件类型

  • 设置:file_types
  • 描述:配置 Zed 如何根据文件名或扩展名选择文件语言。支持 glob 条目。
  • 默认值
"file_types": {
  "JSONC": ["**/.zed/**/*.json", "**/zed/**/*.json", "**/Zed/**/*.json", "**/.vscode/**/*.json"],
  "Shell Script": [".env.*"]
}

示例

将所有 .c 文件解释为 C++,将名为 MyLockFile 的文件解释为 TOML,将以 Dockerfile 开头的文件解释为 Dockerfile

{
  "file_types": {
    "C++": ["c"],
    "TOML": ["MyLockFile"],
    "Dockerfile": ["Dockerfile*"]
  }
}

诊断

  • 描述:与诊断相关功能的配置。
  • 设置:diagnostics
  • 默认值
{
  "diagnostics": {
    "include_warnings": true,
    "inline": {
      "enabled": false
    },
    "update_with_cursor": false,
    "primary_only": false,
    "use_rendered": false
  }
}

内联诊断

  • 描述:是否内联显示诊断信息。
  • 设置:inline
  • 默认值
{
  "diagnostics": {
    "inline": {
      "enabled": false,
      "update_debounce_ms": 150,
      "padding": 4,
      "min_column": 0,
      "max_severity": null
    }
  }
}

选项

  1. 启用内联诊断。
{
  "diagnostics": {
    "inline": {
      "enabled": true
    }
  }
}
  1. 延迟诊断更新,直到上次诊断更新后一段时间。
{
  "diagnostics": {
    "inline": {
      "enabled": true,
      "update_debounce_ms": 150
    }
  }
}
  1. 设置源行末尾和诊断开始之间的填充。
{
  "diagnostics": {
    "inline": {
      "enabled": true,
      "padding": 4
    }
  }
}
  1. 在给定列处水平对齐内联诊断。
{
  "diagnostics": {
    "inline": {
      "enabled": true,
      "min_column": 80
    }
  }
}
  1. 只显示警告和错误诊断。
{
  "diagnostics": {
    "inline": {
      "enabled": true,
      "max_severity": "warning"
    }
  }
}

Git

  • 描述:与 git 相关功能的配置。
  • 设置:git
  • 默认值
{
  "git": {
    "git_gutter": "tracked_files",
    "inline_blame": {
      "enabled": true
    },
    "branch_picker": {
      "show_author_name": true
    },
    "hunk_style": "staged_hollow"
  }
}

Git 边栏

  • 描述:是否显示 git 边栏。
  • 设置:git_gutter
  • 默认值:tracked_files

选项

  1. 在跟踪文件中显示 git 边栏
{
  "git": {
    "git_gutter": "tracked_files"
  }
}
  1. 隐藏 git 边栏
{
  "git": {
    "git_gutter": "hide"
  }
}

边栏去抖

  • 描述:设置去抖阈值(毫秒),在此阈值后更改会反映在 git 边栏中。
  • 设置:gutter_debounce
  • 默认值:null

选项

表示毫秒的 integer

示例

{
  "git": {
    "gutter_debounce": 100
  }
}

内联 Git Blame

  • 描述:是否在当前聚焦行上内联显示 Git Blame 信息。
  • 设置:inline_blame
  • 默认值
{
  "git": {
    "inline_blame": {
      "enabled": true
    }
  }
}

选项

  1. 禁用内联 Git Blame
{
  "git": {
    "inline_blame": {
      "enabled": false
    }
  }
}
  1. 仅在延迟后(光标停止移动后开始)显示内联 Git Blame
{
  "git": {
    "inline_blame": {
      "delay_ms": 500
    }
  }
}
  1. 在提交日期和作者旁边显示提交摘要
{
  "git": {
    "inline_blame": {
      "show_commit_summary": true
    }
  }
}
  1. 将其用作显示内联 Blame 信息的最小列
{
  "git": {
    "inline_blame": {
      "min_column": 80
    }
  }
}
  1. 设置行尾和内联 Blame 提示之间的填充,单位为 ems
{
  "git": {
    "inline_blame": {
      "padding": 10
    }
  }
}

分支选择器

  • 描述:与分支选择器相关的配置。
  • 设置:branch_picker
  • 默认值
{
  "git": {
    "branch_picker": {
      "show_author_name": false
    }
  }
}

选项

  1. 在分支选择器中显示作者姓名
{
  "git": {
    "branch_picker": {
      "show_author_name": true
    }
  }
}

Hunk 样式

  • 描述:我们应该对差异块使用什么样式。
  • 设置:hunk_style
  • 默认值
{
  "git": {
    "hunk_style": "staged_hollow"
  }
}

选项

  1. 将暂存的块淡出并带有边框
{
  "git": {
    "hunk_style": "staged_hollow"
  }
}
  1. 将未暂存的块淡出并带有边框
{
  "git": {
    "hunk_style": "unstaged_hollow"
  }
}

跳转到定义回退

  • 描述:当 editor: go to definition 操作无法找到定义时执行的操作
  • 设置:go_to_definition_fallback
  • 默认值:"find_all_references"

选项

  1. 不执行任何操作
{
  "go_to_definition_fallback": "none"
}
  1. 查找相同符号的引用(默认)
{
  "go_to_definition_fallback": "find_all_references"
}

硬制表符

  • 描述:是否使用制表符或多个空格来缩进行。
  • 设置:hard_tabs
  • 默认值:false

选项

boolean

Helix 模式

  • 描述:是否启用 Helix 模式。启用 helix_mode 也会启用 vim_mode。有关更多详细信息,请参阅Helix 文档
  • 设置:helix_mode
  • 默认值:false

选项

boolean

缩进指南

  • 描述:与缩进指南相关的配置。缩进指南可以为每种语言单独配置。
  • 设置:indent_guides
  • 默认值
{
  "indent_guides": {
    "enabled": true,
    "line_width": 1,
    "active_line_width": 1,
    "coloring": "fixed",
    "background_coloring": "disabled"
  }
}

选项

  1. 禁用缩进指南
{
  "indent_guides": {
    "enabled": false
  }
}
  1. 为特定语言启用缩进指南。
{
  "languages": {
    "Python": {
      "indent_guides": {
        "enabled": true
      }
    }
  }
}
  1. 启用缩进感知着色(“彩虹缩进”)。用于不同缩进级别的颜色在主题中定义(主题键:accents)。它们可以通过使用主题覆盖进行自定义。
{
  "indent_guides": {
    "enabled": true,
    "coloring": "indent_aware"
  }
}
  1. 启用缩进感知背景着色(“彩虹缩进”)。用于不同缩进级别的颜色在主题中定义(主题键:accents)。它们可以通过使用主题覆盖进行自定义。
{
  "indent_guides": {
    "enabled": true,
    "coloring": "indent_aware",
    "background_coloring": "indent_aware"
  }
}

悬停弹出框已启用

  • 描述:当鼠标移到编辑器中的符号上时,是否显示信息性悬停框。
  • 设置:hover_popover_enabled
  • 默认值:true

选项

boolean

悬停弹出框延迟

  • 描述:显示信息性悬停框之前等待的毫秒数。
  • 设置:hover_popover_delay
  • 默认值:300

选项

表示毫秒的 integer

图标主题

  • 描述:图标主题设置可以有两种形式:作为图标主题的名称,或者作为包含 Zed 内文件/文件夹的 modedarklight 图标主题的对象。
  • 设置:icon_theme
  • 默认值:Zed (Default)

图标主题对象

  • 描述:使用包含 modedarklight 的对象指定图标主题。
  • 设置:icon_theme
  • 默认值
"icon_theme": {
  "mode": "system",
  "dark": "Zed (Default)",
  "light": "Zed (Default)"
},

模式

  • 描述:指定图标主题模式。
  • 设置:mode
  • 默认值:system

选项

  1. 将图标主题设置为深色模式
{
  "mode": "dark"
}
  1. 将图标主题设置为浅色模式
{
  "mode": "light"
}
  1. 将图标主题设置为系统模式
{
  "mode": "system"
}

深色

  • 描述:深色图标主题的名称。
  • 设置:dark
  • 默认值:Zed (Default)

选项

在命令面板中运行 icon theme selector: toggle 操作以查看有效图标主题名称的当前列表。

浅色

  • 描述:浅色图标主题的名称。
  • 设置:light
  • 默认值:Zed (Default)

选项

在命令面板中运行 icon theme selector: toggle 操作以查看有效图标主题名称的当前列表。

图像查看器

  • 描述:图像查看器功能的设置
  • 设置:image_viewer
  • 默认值
{
  "image_viewer": {
    "unit": "binary"
  }
}

选项

单位

  • 描述:图像文件大小的单位
  • 设置:unit
  • 默认值:"binary"

选项

  1. 使用二进制单位(KiB、MiB)
{
  "image_viewer": {
    "unit": "binary"
  }
}
  1. 使用十进制单位(KB、MB)
{
  "image_viewer": {
    "unit": "decimal"
  }
}

内联提示

  • 描述:用于在编辑器中显示带有提示的额外文本的配置。
  • 设置:inlay_hints
  • 默认值
"inlay_hints": {
  "enabled": false,
  "show_type_hints": true,
  "show_parameter_hints": true,
  "show_other_hints": true,
  "show_background": false,
  "edit_debounce_ms": 700,
  "scroll_debounce_ms": 50,
  "toggle_on_modifiers_press": null
}

选项

内联提示查询包括两部分:编辑器(客户端)和 LSP 服务器。当启用上述内联设置后,编辑器将开始查询某些类型的提示,并响应服务器的 LSP 提示刷新请求。此时,服务器可能会根据其实现返回提示或不返回提示,可能需要进一步配置,请参阅相应的 LSP 服务器文档。

以下语言的内联提示已由 Zed 预配置

使用 lsp 部分进行服务器配置。示例在相应的语言文档中提供。

Zed 中的提示不会立即查询,使用了两种去抖,任一都可以设置为 0 以禁用。与设置相关的提示更新不会去抖。

toggle_on_modifiers_press 的所有可能配置值为

"inlay_hints": {
  "toggle_on_modifiers_press": {
    "control": true,
    "shift": true,
    "alt": true,
    "platform": true,
    "function": true
  }
}

未指定的值为 false,如果所有修饰符都为 false 或并非所有修饰符都按下,则不会切换提示。

日志

  • 描述:日志的配置。
  • 设置:journal
  • 默认值
"journal": {
  "path": "~",
  "hour_format": "hour12"
}

路径

  • 描述:存储日志条目的目录路径。
  • 设置:path
  • 默认值:~

选项

string

小时格式

  • 描述:用于在日志中显示小时的格式。
  • 设置:hour_format
  • 默认值:hour12

选项

  1. 12 小时制
{
  "hour_format": "hour12"
}
  1. 24 小时制
{
  "hour_format": "hour24"
}

JSX 标签自动关闭

  • 描述:是否自动关闭 JSX 标签
  • 设置:jsx_tag_auto_close
  • 默认值
{
  "jsx_tag_auto_close": {
    "enabled": true
  }
}

选项

  • enabled:是否启用 JSX 标签自动关闭

语言

  • 描述:特定语言的配置。
  • 设置:languages
  • 默认值:null

选项

要覆盖某种语言的设置,请将该语言名称的条目添加到 languages 值中。示例

"languages": {
  "C": {
    "format_on_save": "off",
    "preferred_line_length": 64,
    "soft_wrap": "preferred_line_length"
  },
  "JSON": {
    "tab_size": 4
  }
}

以下设置可以为每种特定语言覆盖

这些值与同名的根级设置采用相同的选项。

语言模型

  • 描述:语言模型提供者的配置
  • 设置:language_models
  • 默认值
{
  "language_models": {
    "anthropic": {
      "api_url": "https://api.anthropic.com"
    },
    "google": {
      "api_url": "https://generativelanguage.googleapis.com"
    },
    "ollama": {
      "api_url": "https://:11434"
    },
    "openai": {
      "api_url": "https://api.openai.com/v1"
    }
  }
}

选项

各种 AI 模型提供者的配置,包括 API URL 和认证设置。

行指示器格式

  • 描述:状态栏中行指示器的格式
  • 设置:line_indicator_format
  • 默认值:"short"

选项

  1. 短格式
{
  "line_indicator_format": "short"
}
  1. 长格式
{
  "line_indicator_format": "long"
}

链接编辑

  • 描述:如果语言服务器支持,是否执行关联范围的链接编辑。例如,当编辑开头的 <html> 标签时,闭合 </html> 标签的内容也将被编辑。
  • 设置:linked_edits
  • 默认值:true

选项

boolean

LSP 文档颜色

  • 描述:是否显示来自语言服务器的文档颜色信息
  • 设置:lsp_document_colors
  • 默认值:true

选项

boolean

最大标签页数

  • 描述:标签栏中显示的最大标签页数
  • 设置:max_tabs
  • 默认值:null

选项

integer 值或 null 表示无限制标签页

中键粘贴(仅限 Linux)

  • 描述:在 Linux 上启用中键粘贴
  • 设置:middle_click_paste
  • 默认值:true

选项

boolean

多光标修饰符

  • 描述:确定用于通过鼠标添加多个光标的修饰符。打开悬停链接鼠标手势将进行调整,使其不与多光标修饰符冲突。
  • 设置:multi_cursor_modifier
  • 默认值:alt

选项

  1. 在 Linux 和 Windows 上映射到 Alt,在 macOS 上映射到 Option
{
  "multi_cursor_modifier": "alt"
}
  1. 在 Linux 和 Windows 上映射到 Control,在 macOS 上映射到 Command
{
  "multi_cursor_modifier": "cmd_or_ctrl" // alias: "cmd", "ctrl"
}

节点

  • 描述:Node.js 集成的配置
  • 设置:node
  • 默认值
{
  "node": {
    "ignore_system_version": false,
    "path": null,
    "npm_path": null
  }
}

选项

  • ignore_system_version:是否忽略系统 Node.js 版本
  • path:Node.js 二进制文件的自定义路径
  • npm_path:npm 二进制文件的自定义路径

网络代理

  • 描述:为 Zed 配置网络代理。
  • 设置:proxy
  • 默认值:null

选项

代理设置必须包含代理的 URL。

支持以下 URI 方案

  • http
  • https
  • socks4 - 带有本地 DNS 的 SOCKS4 代理
  • socks4a - 带有远程 DNS 的 SOCKS4 代理
  • socks5 - 带有本地 DNS 的 SOCKS5 代理
  • socks5h - 带有远程 DNS 的 SOCKS5 代理

未指定方案时将使用 http

默认情况下不使用代理,或者 Zed 将尝试从环境变量中检索代理设置,例如 http_proxyHTTP_PROXYhttps_proxyHTTPS_PROXYall_proxyALL_PROXYno_proxyNO_PROXY

例如,要设置 http 代理,请将以下内容添加到您的设置中

{
  "proxy": "http://127.0.0.1:10809"
}

或者设置 socks5 代理

{
  "proxy": "socks5h://:10808"
}

如果您希望排除某些主机不使用代理,请设置 NO_PROXY 环境变量。它接受逗号分隔的主机名、主机后缀、IPv4/IPv6 地址或不应使用代理的块列表。例如,如果您的环境包含 NO_PROXY="google.com, 192.168.1.0/24",则 192.168.1.*google.com*.google.com 中的所有主机都将绕过代理。有关更多信息,请参阅 reqwest NoProxy 文档

关闭最后一个窗口时

  • 描述:关闭最后一个窗口时执行的操作
  • 设置:on_last_window_closed
  • 默认值:"platform_default"

选项

  1. 使用平台默认行为
{
  "on_last_window_closed": "platform_default"
}
  1. 始终退出应用程序
{
  "on_last_window_closed": "quit_app"
}

配置文件

  • 描述:可以在现有设置之上应用的配置配置文件
  • 设置:profiles
  • 默认值:{}

选项

用于定义设置配置文件的配置对象。示例

{
  "profiles": {
    "presentation": {
      "buffer_font_size": 20,
      "ui_font_size": 18,
      "theme": "One Light"
    }
  }
}

预览标签页

  • 描述:预览标签页允许您以预览模式打开文件,在切换到另一个文件时,除非您明确将其固定,否则它们会自动关闭。这对于快速查看文件而不会使您的工作区混乱非常有用。预览标签页以斜体显示其文件名。
    有几种方法可以将预览标签页转换为常规标签页

    • 双击文件
    • 双击标签页标题
    • 使用 project panel: open permanent 操作
    • 编辑文件
    • 将文件拖到不同的窗格
  • 设置:preview_tabs

  • 默认值

"preview_tabs": {
  "enabled": true,
  "enable_preview_from_file_finder": false,
  "enable_preview_from_code_navigation": false,
}

从文件查找器启用预览

  • 描述:确定从文件查找器选择文件时是否以预览模式打开文件。
  • 设置:enable_preview_from_file_finder
  • 默认值:false

选项

boolean

从代码导航启用预览

  • 描述:确定当使用代码导航离开标签页时,预览标签页是否被替换。
  • 设置:enable_preview_from_code_navigation
  • 默认值:false

选项

boolean

文件查找器

文件图标

  • 描述:是否在文件查找器中显示文件图标。
  • 设置:file_icons
  • 默认值:true
  • 描述:文件查找器模态的最大宽度。它可以取以下值之一:smallmediumlargexlargefull
  • 设置:modal_max_width
  • 默认值:small
  • 描述:确定文件查找器是否应在搜索结果中跳过对活动文件的焦点。
  • 设置:skip_focus_for_active_in_search
  • 默认值:true

窗格水平分割方向

  • 描述:您希望水平分割窗格的方向
  • 设置:pane_split_direction_horizontal
  • 默认值:"up"

选项

  1. 向上分割
{
  "pane_split_direction_horizontal": "up"
}
  1. 向下分割
{
  "pane_split_direction_horizontal": "down"
}

窗格垂直分割方向

  • 描述:您希望垂直分割窗格的方向
  • 设置:pane_split_direction_vertical
  • 默认值:"left"

选项

  1. 向左分割
{
  "pane_split_direction_vertical": "left"
}
  1. 向右分割
{
  "pane_split_direction_vertical": "right"
}

首选行长

  • 描述:在启用软换行的缓冲区中,软换行所在的列。
  • 设置:preferred_line_length
  • 默认值:80

选项

integer

私有文件

  • 描述:用于匹配文件路径以确定文件是否为私有的通配符
  • 设置:private_files
  • 默认值:["**/.env*", "**/*.pem", "**/*.key", "**/*.cert", "**/*.crt", "**/secrets.yml"]

选项

string 通配符模式列表

项目默认在线

  • 描述:是否默认显示在线项目视图。
  • 设置:projects_online_by_default
  • 默认值:true

选项

boolean

读取 SSH 配置

  • 描述:是否读取 SSH 配置文件
  • 设置:read_ssh_config
  • 默认值:true

选项

boolean

编辑私有值

  • 描述:在私有文件中隐藏变量值的视觉显示
  • 设置:redact_private_values
  • 默认值:false

选项

boolean

相对行号

  • 描述:是否在边栏中显示相对行号
  • 设置:relative_line_numbers
  • 默认值:false

选项

boolean

保存时删除尾随空格

  • 描述:在保存缓冲区之前,是否删除行尾的任何尾随空格。
  • 设置:remove_trailing_whitespace_on_save
  • 默认值:true

选项

boolean

调整停靠区中的所有面板大小

  • 描述:调整停靠区大小时是否调整停靠区中所有面板的大小。可以是“left”、“right”和“bottom”的组合。
  • 设置:resize_all_panels_in_dock
  • 默认值:["left"]

选项

包含以下任意组合的字符串列表

  • "left":一起调整左侧停靠面板的大小
  • "right":一起调整右侧停靠面板的大小
  • "bottom":一起调整底部停靠面板的大小

文件重新打开时恢复

  • 描述:重新打开文件时是否尝试恢复以前文件的状态。状态按窗格存储。
  • 设置:restore_on_file_reopen
  • 默认值:true

选项

boolean

启动时恢复

  • 描述:控制启动时的会话恢复。
  • 设置:restore_on_startup
  • 默认值:last_session

选项

  1. 恢复退出 Zed 时打开的所有工作区
{
  "restore_on_startup": "last_session"
}
  1. 恢复最后关闭的工作区
{
  "restore_on_startup": "last_workspace"
}
  1. 始终以空编辑器启动
{
  "restore_on_startup": "none"
}

滚动到最后一行之外

  • 描述:编辑器是否会滚动到最后一行之外
  • 设置:scroll_beyond_last_line
  • 默认值:"one_page"

选项

  1. 滚动到最后一行之外一页
{
  "scroll_beyond_last_line": "one_page"
}
  1. 编辑器将滚动到最后一行之外,超出 vertical_scroll_margin 的行数
{
  "scroll_beyond_last_line": "vertical_scroll_margin"
}
  1. 编辑器不会滚动到最后一行之外
{
  "scroll_beyond_last_line": "off"
}

选项

boolean

滚动灵敏度

  • 描述:滚动灵敏度乘数。此乘数应用于滚动时的水平和垂直 delta 值。
  • 设置:scroll_sensitivity
  • 默认值:1.0

选项

float

快速滚动灵敏度

  • 描述:快速滚动的滚动灵敏度乘数。此乘数应用于滚动时的水平和垂直 delta 值。当用户在滚动时按住 alt 或 option 键时,会进行快速滚动。
  • 设置:fast_scroll_sensitivity
  • 默认值:4.0

选项

float

水平滚动边距

  • 描述:使用鼠标滚动时,左右两侧保留的字符数
  • 设置:horizontal_scroll_margin
  • 默认值:5

选项

非负 integer

垂直滚动边距

  • 描述:使用键盘滚动时光标上方/下方保留的行数
  • 设置:vertical_scroll_margin
  • 默认值:3

选项

非负 integer

  • 描述:打开新项目和缓冲区搜索时默认启用的搜索选项。
  • 设置:search
  • 默认值
"search": {
  "whole_word": false,
  "case_sensitive": false,
  "include_ignored": false,
  "regex": false
},

搜索环绕

  • 描述:如果禁用 search_wrap,则搜索结果不会在文件末尾环绕
  • 设置:search_wrap
  • 默认值:true

从光标处填充搜索查询

  • 描述:何时根据光标下的文本填充新搜索的查询。
  • 设置:seed_search_query_from_cursor
  • 默认值:always

选项

  1. always 始终用光标下的单词填充搜索查询
  2. selection 仅在选中文本时填充搜索查询
  3. never 从不填充搜索查询
  • 描述:启用后,根据您的查询自动调整搜索大小写敏感性。如果您的搜索查询包含任何大写字母,则搜索将区分大小写;如果仅包含小写字母,则搜索将不区分大小写。
    这适用于文件内搜索和项目范围搜索。
  • 设置:use_smartcase_search
  • 默认值:false

选项

boolean

示例

  • 搜索“function”将匹配“function”、“Function”、“FUNCTION”等。
  • 搜索“Function”将仅匹配“Function”,而不匹配“function”或“FUNCTION”

显示通话状态图标

  • 描述:是否在状态栏中显示通话状态图标。
  • 设置:show_call_status_icon
  • 默认值:true

选项

boolean

完成

  • 描述:控制如何处理此语言的完成。
  • 设置:completions
  • 默认值
{
  "completions": {
    "words": "fallback",
    "words_min_length": 3,
    "lsp": true,
    "lsp_fetch_timeout_ms": 0,
    "lsp_insert_mode": "replace_suffix"
  }
}

单词

  • 描述:控制如何完成单词。对于大型文档,可能无法获取所有单词进行完成。
  • 设置:words
  • 默认值:fallback

选项

  1. enabled - 始终获取文档的单词以进行完成,以及 LSP 完成
  2. fallback - 仅当 LSP 响应出错或超时时,使用文档的单词显示完成
  3. disabled - 从不获取或完成文档的单词以进行完成(基于单词的完成仍可通过单独的操作进行查询)

最小单词查询长度

  • 描述:自动触发基于单词的完成所需的最小字符数。在此值之前,仍可以通过相应的编辑器命令手动触发基于单词的完成。
  • 设置:words_min_length
  • 默认值:3

选项

正整数值

LSP

  • 描述:是否获取 LSP 完成。
  • 设置:lsp
  • 默认值:true

选项

boolean

LSP 获取超时 (ms)

  • 描述:获取 LSP 完成时,确定等待特定服务器响应的时间。设置为 0 时,无限期等待。
  • 设置:lsp_fetch_timeout_ms
  • 默认值:0

选项

表示毫秒的 integer

LSP 插入模式

  • 描述:控制接受 LSP 完成时要替换的范围。
  • 设置:lsp_insert_mode
  • 默认值:replace_suffix

选项

  1. insert - 替换光标前的文本,使用 LSP 规范中描述的 insert 范围
  2. replace - 替换光标前后的文本,使用 LSP 规范中描述的 replace 范围
  3. replace_subsequence - 如果要替换的文本是完成文本的子序列,则行为类似于 "replace",否则行为类似于 "insert"
  4. replace_suffix - 如果光标后的文本是完成的后缀,则行为类似于 "replace",否则行为类似于 "insert"

输入时显示完成

  • 描述:是否在您键入时显示完成。
  • 设置:show_completions_on_input
  • 默认值:true

选项

boolean

显示完成文档

  • 描述:是否在完成菜单中显示项目的内联和伴随文档。
  • 设置:show_completion_documentation
  • 默认值:true

选项

boolean

显示编辑预测

  • 描述:是否在您键入时或通过触发 editor::ShowEditPrediction 手动显示编辑预测。
  • 设置:show_edit_predictions
  • 默认值:true

选项

boolean

显示空白符

  • 描述:是否在编辑器中渲染空白字符。
  • 设置:show_whitespaces
  • 默认值:selection

选项

  1. 所有
  2. 选择
  3. 边界

空白符映射

  • 描述:指定在启用 show_whitespaces 时用于渲染空白字符的字符。
  • 设置:whitespace_map
  • 默认值
{
  "whitespace_map": {
    "space": "•",
    "tab": "→"
  }
}

软换行

  • 描述:是否自动换行以适应编辑器/首选宽度。
  • 设置:soft_wrap
  • 默认值:none

选项

  1. none 一般避免换行,除非行太长
  2. prefer_line(已弃用,与 none 相同)
  3. editor_width 换行超出编辑器宽度的行
  4. preferred_line_length 换行超出 preferred_line_length 配置值的行
  5. bounded 换行在 editor_widthpreferred_line_length 的最小值处

显示换行指南

  • 描述:是否在编辑器中显示换行指南(垂直标尺)。将其设置为 true 将在“preferred_line_length”值处显示指南(如果“soft_wrap”设置为“preferred_line_length”),并根据“wrap_guides”设置显示任何额外的指南。
  • 设置:show_wrap_guides
  • 默认值:true

选项

boolean

使用键入时格式化

  • 描述:是否使用额外的 LSP 查询在每次输入“触发”符号后格式化(并修改)代码,由 LSP 服务器功能定义
  • 设置:use_on_type_format
  • 默认值:true

选项

boolean

使用自动环绕

  • 描述:键入开括号、方括号、花括号、单引号或双引号字符时,是否自动环绕选定的文本。例如,当您选择文本并键入“(”时,Zed 将用 () 环绕文本。
  • 设置:use_auto_surround
  • 默认值:true

选项

boolean

使用系统路径提示

  • 描述:是否使用系统提供的“打开”和“另存为”对话框。设置为 false 时,Zed 将使用内置的键盘优先选择器。
  • 设置:use_system_path_prompts
  • 默认值:true

选项

boolean

使用系统提示

  • 描述:是否使用系统提供的提示对话框,例如确认提示。设置为 false 时,Zed 将使用其内置提示。请注意,在 Linux 上,此选项将被忽略,Zed 将始终使用内置提示。
  • 设置:use_system_prompts
  • 默认值:true

选项

boolean

换行指南(垂直标尺)

  • 描述:显示垂直标尺作为换行指南的位置。通过将 show_wrap_guides 设置为 false 禁用。
  • 设置:wrap_guides
  • 默认值:[]

选项

integer 列号列表

制表符大小

  • 描述:每个制表符使用的空格数。
  • 设置:tab_size
  • 默认值:4

选项

integer

任务

  • 描述:可在 Zed 中运行的任务配置
  • 设置:tasks
  • 默认值
{
  "tasks": {
    "variables": {},
    "enabled": true,
    "prefer_lsp": false
  }
}

选项

  • variables:任务配置的自定义变量
  • enabled:任务是否启用
  • prefer_lsp:是否优先使用 LSP 提供的任务而不是 Zed 语言扩展任务

遥测

  • 描述:控制 Zed 收集的信息。
  • 设置:telemetry
  • 默认值
"telemetry": {
  "diagnostics": true,
  "metrics": true
},

选项

诊断

  • 描述:用于发送调试相关数据(例如崩溃报告)的设置。
  • 设置:diagnostics
  • 默认值:true

选项

boolean

指标

  • 描述:用于发送匿名使用数据(例如您正在使用 Zed 的语言)的设置。
  • 设置:metrics
  • 默认值:true

选项

boolean

终端

  • 描述:终端的配置。
  • 设置:terminal
  • 默认值
{
  "terminal": {
    "alternate_scroll": "off",
    "blinking": "terminal_controlled",
    "copy_on_select": false,
    "keep_selection_on_copy": true,
    "dock": "bottom",
    "default_width": 640,
    "default_height": 320,
    "detect_venv": {
      "on": {
        "directories": [".env", "env", ".venv", "venv"],
        "activate_script": "default"
      }
    },
    "env": {},
    "font_family": null,
    "font_features": null,
    "font_size": null,
    "line_height": "comfortable",
    "minimum_contrast": 45,
    "option_as_meta": false,
    "button": true,
    "shell": "system",
    "toolbar": {
      "breadcrumbs": false
    },
    "working_directory": "current_project_directory",
    "scrollbar": {
      "show": null
    }
  }
}

终端:停靠

  • 描述:控制停靠位置
  • 设置:dock
  • 默认值:bottom

选项

"bottom", "left""right"

终端:交替滚动

  • 描述:设置备用滚动模式(DECSET 代码:?1007)是否默认激活。备用滚动模式将鼠标滚动事件转换为备用屏幕中的向上/向下按键(例如,当运行 vim 或 less 等应用程序时)。终端仍然可以通过 ANSI 转义码设置和取消设置此模式。
  • 设置:alternate_scroll
  • 默认值:off

选项

  1. 默认备用滚动模式为关闭
{
  "terminal": {
    "alternate_scroll": "off"
  }
}
  1. 默认备用滚动模式为开启
{
  "terminal": {
    "alternate_scroll": "on"
  }
}

终端:闪烁

  • 描述:设置终端中光标的闪烁行为
  • 设置:blinking
  • 默认值:terminal_controlled

选项

  1. 从不闪烁光标,忽略终端模式
{
  "terminal": {
    "blinking": "off"
  }
}
  1. 默认光标闪烁为关闭,但允许终端开启闪烁
{
  "terminal": {
    "blinking": "terminal_controlled"
  }
}
  1. 始终闪烁光标,忽略终端模式
{
  "terminal": {
    "blinking": "on"
  }
}

终端:选中时复制

  • 描述:在终端中选择文本时是否自动复制到系统剪贴板。
  • 设置:copy_on_select
  • 默认值:false

选项

boolean

示例

{
  "terminal": {
    "copy_on_select": true
  }
}

终端:光标形状

  • 描述:控制终端中光标的视觉形状。如果未明确设置,则默认为块状。
  • 设置:cursor_shape
  • 默认值:null(默认为块状)

选项

  1. 包围下一个字符的块
{
  "terminal": {
    "cursor_shape": "block"
  }
}
  1. 垂直条
{
  "terminal": {
    "cursor_shape": "bar"
  }
}
  1. 沿下一个字符延伸的下划线
{
  "terminal": {
    "cursor_shape": "underline"
  }
}
  1. 围绕下一个字符绘制的方框
{
  "terminal": {
    "cursor_shape": "hollow"
  }
}

终端:复制时保留选择

  • 描述:复制文本后是否在终端中保留选择。
  • 设置:keep_selection_on_copy
  • 默认值:true

选项

boolean

示例

{
  "terminal": {
    "keep_selection_on_copy": false
  }
}

终端:环境

  • 描述:添加到此对象的任何键值对都将添加到终端的环境中。键必须唯一,使用 : 分隔单个变量中的多个值
  • 设置:env
  • 默认值:{}

示例

{
  "terminal": {
    "env": {
      "ZED": "1",
      "KEY": "value1:value2"
    }
  }
}

终端:字体大小

  • 描述:终端使用的字体大小。如果未设置,则默认为与编辑器字体大小匹配
  • 设置:font_size
  • 默认值:null

选项

integer

{
  "terminal": {
    "font_size": 15
  }
}

终端:字体系列

  • 描述:终端使用的字体。如果未设置,则默认为与编辑器字体匹配。
  • 设置:font_family
  • 默认值:null

选项

用户系统上安装的任何字体系列名称

{
  "terminal": {
    "font_family": "Berkeley Mono"
  }
}

终端:字体特性

  • 描述:终端使用的字体特性。如果未设置,则默认为与编辑器字体特性匹配。
  • 设置:font_features
  • 默认值:null
  • 平台:macOS 和 Windows。

选项

请参阅缓冲区字体特性

{
  "terminal": {
    "font_features": {
      "calt": false
      // See Buffer Font Features for more features
    }
  }
}

终端:行高

  • 描述:设置终端的行高。
  • 设置:line_height
  • 默认值:standard

选项

  1. 使用 comfortable 的行高以方便阅读,1.618。
{
  "terminal": {
    "line_height": "comfortable"
  }
}
  1. 使用 standard 行高,1.3。此选项对于 TUI 特别有用,尤其是当它们使用方框字符时(默认)。
{
  "terminal": {
    "line_height": "standard"
  }
}
  1. 使用自定义行高。
{
  "terminal": {
    "line_height": {
      "custom": 2
    }
  }
}

终端:最小对比度

  • 描述:控制终端中前景和背景颜色之间的最小对比度。使用 APCA(可访问感知对比度算法)进行颜色调整。将其设置为 0 以禁用此功能。
  • 设置:minimum_contrast
  • 默认值:45

选项

0106integer 值。常见推荐值

  • 0:无对比度调整
  • 45:大型流畅文本的最小对比度(默认)
  • 60:其他内容文本的最小对比度
  • 75:正文文本的最小对比度
  • 90:正文文本的首选对比度
{
  "terminal": {
    "minimum_contrast": 45
  }
}

终端:Option 键作为 Meta 键

  • 描述:将 Option 键重新解释为“meta”键,就像在 Emacs 中一样。
  • 设置:option_as_meta
  • 默认值:false

选项

boolean

{
  "terminal": {
    "option_as_meta": true
  }
}

终端:Shell

  • 描述:启动终端时使用的 shell。
  • 设置:shell
  • 默认值:system

选项

  1. 使用系统的默认终端配置(通常是 /etc/passwd 文件)。
{
  "terminal": {
    "shell": "system"
  }
}
  1. 要启动的程序
{
  "terminal": {
    "shell": {
      "program": "sh"
    }
  }
}
  1. 带参数的程序
{
  "terminal": {
    "shell": {
      "with_arguments": {
        "program": "/bin/bash",
        "args": ["--login"]
      }
    }
  }
}

终端:检测虚拟环境

  • 描述:如果在终端的工作目录中(由 working_directory 解析并自动激活虚拟环境)找到 Python 虚拟环境,则激活它。
  • 设置:detect_venv
  • 默认值
{
  "terminal": {
    "detect_venv": {
      "on": {
        // Default directories to search for virtual environments, relative
        // to the current working directory. We recommend overriding this
        // in your project's settings, rather than globally.
        "directories": [".env", "env", ".venv", "venv"],
        // Can also be `csh`, `fish`, and `nushell`
        "activate_script": "default"
      }
    }
  }
}

禁用

{
  "terminal": {
    "detect_venv": "off"
  }
}

终端:工具栏

  • 描述:是否在终端工具栏中显示各种元素。
  • 设置:toolbar
  • 默认值
{
  "terminal": {
    "toolbar": {
      "breadcrumbs": false
    }
  }
}

选项

目前,只有 breadcrumbs 选项可用,它控制终端标题的显示,可以通过 PROMPT_COMMAND 更改。

如果终端标题为空,则不会显示面包屑。

在终端中运行的 shell 需要配置为发出标题。

设置标题的示例命令:echo -e "\e]2;New Title\007";

终端:按钮

  • 描述:控制在状态栏中显示或隐藏终端按钮
  • 设置:button
  • 默认值:true

选项

boolean

{
  "terminal": {
    "button": false
  }
}

终端:工作目录

  • 描述:启动终端时使用的当前工作目录。
  • 设置:working_directory
  • 默认值:"current_project_directory"

选项

  1. 使用当前文件所在的项目目录。如果失败,将回退到第一个项目目录策略
{
  "terminal": {
    "working_directory": "current_project_directory"
  }
}
  1. 使用此工作区中的第一个项目目录。如果失败,将回退到使用此平台的家目录。
{
  "terminal": {
    "working_directory": "first_project_directory"
  }
}
  1. 始终使用此平台的家目录(如果能找到)
{
  "terminal": {
    "working_directory": "always_home"
  }
}
  1. 始终使用特定目录。此值将进行 shell 扩展。如果此路径不是有效目录,则终端将默认为此平台的家目录。
{
  "terminal": {
    "working_directory": {
      "always": {
        "directory": "~/zed/projects/"
      }
    }
  }
}

REPL

  • 描述:Repl 设置。
  • 设置:repl
  • 默认值
"repl": {
  // Maximum number of columns to keep in REPL's scrollback buffer.
  // Clamped with [20, 512] range.
  "max_columns": 128,
  // Maximum number of lines to keep in REPL's scrollback buffer.
  // Clamped with [4, 256] range.
  "max_lines": 32
},

主题

  • 描述:主题设置可以有两种形式——要么是主题的名称,要么是包含 Zed UI 的 modedarklight 主题的对象。
  • 设置:theme
  • 默认值:One Dark

主题对象

  • 描述:使用包含 modedarklight 主题的对象指定主题。
  • 设置:theme
  • 默认值
"theme": {
  "mode": "system",
  "dark": "One Dark",
  "light": "One Light"
},

模式

  • 描述:指定主题模式。
  • 设置:mode
  • 默认值:system

选项

  1. 将主题设置为深色模式
{
  "mode": "dark"
}
  1. 将主题设置为浅色模式
{
  "mode": "light"
}
  1. 将主题设置为系统模式
{
  "mode": "system"
}

深色

  • 描述:用于 UI 的深色 Zed 主题名称。
  • 设置:dark
  • 默认值:One Dark

选项

在命令面板中运行 theme selector: toggle 操作以查看当前有效的主题名称列表。

浅色

  • 描述:用于 UI 的浅色 Zed 主题名称。
  • 设置:light
  • 默认值:One Light

选项

在命令面板中运行 theme selector: toggle 操作以查看当前有效的主题名称列表。

标题栏

  • 描述:是否显示标题栏中的各种元素
  • 设置:title_bar
  • 默认值
"title_bar": {
  "show_branch_icon": false,
  "show_branch_name": true,
  "show_project_items": true,
  "show_onboarding_banner": true,
  "show_user_picture": true,
  "show_sign_in": true,
  "show_menus": false
}

选项

  • show_branch_icon:是否在标题栏中的分支切换器旁边显示分支图标
  • show_branch_name:是否在标题栏中显示分支名称按钮
  • show_project_items:是否在标题栏中显示项目主机和名称
  • show_onboarding_banner:是否在标题栏中显示新手引导横幅
  • show_user_picture:是否在标题栏中显示用户图片
  • show_sign_in:是否在标题栏中显示登录按钮
  • show_menus:是否在标题栏中显示菜单

Vim

  • 描述:是否启用 vim 模式。
  • 设置:vim_mode
  • 默认值:false

无标签页时关闭

  • 描述:当窗口没有标签页时,使用“关闭活动项”是否应关闭窗口
  • 设置:when_closing_with_no_tabs
  • 默认值:"platform_default"

选项

  1. 使用平台默认行为
{
  "when_closing_with_no_tabs": "platform_default"
}
  1. 始终关闭窗口
{
  "when_closing_with_no_tabs": "close_window"
}
  1. 从不关闭窗口
{
  "when_closing_with_no_tabs": "keep_window_open"
}

项目面板

  • 描述:自定义项目面板
  • 设置:project_panel
  • 默认值
{
  "project_panel": {
    "button": true,
    "default_width": 240,
    "dock": "left",
    "entry_spacing": "comfortable",
    "file_icons": true,
    "folder_icons": true,
    "git_status": true,
    "indent_size": 20,
    "auto_reveal_entries": true,
    "auto_fold_dirs": true,
    "drag_and_drop": true,
    "scrollbar": {
      "show": null
    },
    "sticky_scroll": true,
    "show_diagnostics": "all",
    "indent_guides": {
      "show": "always"
    },
    "hide_root": false,
    "hide_hidden": false,
    "starts_open": true,
    "open_file_on_paste": true
  }
}

停靠

  • 描述:控制停靠位置
  • 设置:dock
  • 默认值:left

选项

  1. 默认停靠位置为左侧
{
  "dock": "left"
}
  1. 默认停靠位置为右侧
{
  "dock": "right"
}

条目间距

  • 描述:工作树条目之间的间距
  • 设置:entry_spacing
  • 默认值:comfortable

选项

  1. 舒适的条目间距
{
  "entry_spacing": "comfortable"
}
  1. 标准条目间距
{
  "entry_spacing": "standard"
}

Git 状态

  • 描述:指示新创建和更新的文件
  • 设置:git_status
  • 默认值:true

选项

  1. 默认启用 git 状态
{
  "git_status": true
}
  1. 默认禁用 git 状态
{
  "git_status": false
}

默认宽度

  • 描述:自定义项目面板的默认宽度
  • 设置:default_width
  • 默认值:240

选项

float

自动显示条目

  • 描述:当相应的项目条目变为活动状态时,是否在项目面板中自动显示它。Git 忽略的条目从不自动显示。
  • 设置:auto_reveal_entries
  • 默认值:true

选项

  1. 启用自动显示条目
{
  "auto_reveal_entries": true
}
  1. 禁用自动显示条目
{
  "auto_reveal_entries": false
}

自动折叠目录

  • 描述:当目录中只有一个目录时,是否自动折叠目录。
  • 设置:auto_fold_dirs
  • 默认值:true

选项

  1. 启用自动折叠目录
{
  "auto_fold_dirs": true
}
  1. 禁用自动折叠目录
{
  "auto_fold_dirs": false
}

缩进大小

  • 描述:嵌套项目的缩进量(像素)。
  • 设置:indent_size
  • 默认值:20

缩进指南:显示

  • 描述:是否在项目面板中显示缩进指南。
  • 设置:indent_guides
  • 默认值
"indent_guides": {
  "show": "always"
}

选项

  1. 在项目面板中显示缩进指南
{
  "indent_guides": {
    "show": "always"
  }
}
  1. 在项目面板中隐藏缩进指南
{
  "indent_guides": {
    "show": "never"
  }
}

滚动条:显示

  • 描述:是否在项目面板中显示滚动条。可能的值:null、“auto”、“system”、“always”、“never”。如果不存在,则继承编辑器设置,请参阅其描述以获取更多详细信息。
  • 设置:scrollbar
  • 默认值
"scrollbar": {
  "show": null
}

选项

  1. 在项目面板中显示滚动条
{
  "scrollbar": {
    "show": "always"
  }
}
  1. 在项目面板中隐藏滚动条
{
  "scrollbar": {
    "show": "never"
  }
}

Agent

访问 AI 部分下的配置页面,了解所有与 Agent 相关的设置。

协作面板

  • 描述:协作面板的自定义设置。
  • 设置:collaboration_panel
  • 默认值
{
  "collaboration_panel": {
    "button": true,
    "dock": "left",
    "default_width": 240
  }
}

选项

  • button:是否在状态栏中显示协作面板按钮
  • dock:停靠协作面板的位置。可以是 leftright
  • default_width:协作面板的默认宽度

调试器

  • 描述:调试器面板和设置的配置
  • 设置:debugger
  • 默认值
{
  "debugger": {
    "stepping_granularity": "line",
    "save_breakpoints": true,
    "dock": "bottom",
    "button": true
  }
}

有关 Zed 中调试支持的更多信息,请参阅调试器页面

Git 面板

  • 描述:自定义 Git 面板行为的设置。
  • 设置:git_panel
  • 默认值
{
  "git_panel": {
    "button": true,
    "dock": "left",
    "default_width": 360,
    "status_style": "icon",
    "fallback_branch_name": "main",
    "sort_by_path": false,
    "collapse_untracked_diff": false,
    "scrollbar": {
      "show": null
    }
  }
}

选项

  • button:是否在状态栏中显示 Git 面板按钮
  • dock:Git 面板的停靠位置。可以是 leftright
  • default_width:Git 面板的默认宽度
  • status_style:如何显示 Git 状态。可以是 label_coloricon
  • fallback_branch_name:如果未设置 init.defaultBranch,则使用的分支名称
  • sort_by_path:是否按路径或状态(默认)对面板中的条目进行排序
  • collapse_untracked_diff:是否在差异面板中折叠未跟踪文件
  • scrollbar:何时在 Git 面板中显示滚动条

大纲面板

  • 描述:自定义大纲面板
  • 设置:outline_panel
  • 默认值
"outline_panel": {
  "button": true,
  "default_width": 300,
  "dock": "left",
  "file_icons": true,
  "folder_icons": true,
  "git_status": true,
  "indent_size": 20,
  "auto_reveal_entries": true,
  "auto_fold_dirs": true,
  "indent_guides": {
    "show": "always"
  },
  "scrollbar": {
    "show": null
  }
}

通话

  • 描述:自定义参与通话时的行为
  • 设置:calls
  • 默认值
"calls": {
  // Join calls with the microphone live by default
  "mute_on_join": false,
  // Share your project when you are the first to join a channel
  "share_on_join": false
},

不必要代码淡出

  • 描述:不使用代码的淡出程度。
  • 设置:unnecessary_code_fade
  • 默认值:0.3

选项

介于 0.00.9 之间的浮点值,其中

  • 0.0 表示不淡出(未使用代码与已使用代码看起来相同)
  • 0.9 表示最大淡出(未使用代码非常微弱但仍然可见)

示例

{
  "unnecessary_code_fade": 0.5
}

UI 字体系列

  • 描述:用于UI文本的字体名称。
  • 设置:ui_font_family
  • 默认值:.ZedSans。它目前是 IBM Plex 的别名。

选项

系统上安装的任何字体家族的名称,".ZedSans" 用于使用 Zed 提供的默认字体,或 ".SystemUIFont" 用于使用系统的默认UI字体(在macOS和Windows上)。

UI 字体特性

  • 描述:为UI文本启用的OpenType特性。
  • 设置:ui_font_features
  • 默认值
"ui_font_features": {
  "calt": false
}
  • 平台:macOS 和 Windows。

选项

Zed 支持所有可以为给定UI字体启用或禁用的OpenType特性,以及为字体特性设置值。

例如,要禁用字体连字,请将以下内容添加到您的设置中

{
  "ui_font_features": {
    "calt": false
  }
}

您还可以设置其他 OpenType 特性,例如将 cv01 设置为 7

{
  "ui_font_features": {
    "cv01": 7
  }
}

UI 字体回退

  • 描述:用于UI文本的字体回退设置。
  • 设置:ui_font_fallbacks
  • 默认值:null
  • 平台:macOS 和 Windows。

选项

例如,要使用 Nerd Font 作为回退,请将以下内容添加到您的设置中

{
  "ui_font_fallbacks": ["Nerd Font"]
}

UI 字体大小

  • 描述:UI文本的默认字体大小。
  • 设置:ui_font_size
  • 默认值:16

选项

6100 像素(含)的 integer

UI 字体粗细

  • 描述:UI文本的默认字体粗细。
  • 设置:ui_font_weight
  • 默认值:400

选项

100900 之间的 integer

一个配置示例

// ~/.config/zed/settings.json
{
  "theme": "cave-light",
  "tab_size": 2,
  "preferred_line_length": 80,
  "soft_wrap": "none",

  "buffer_font_size": 18,
  "buffer_font_family": ".ZedMono",

  "autosave": "on_focus_change",
  "format_on_save": "off",
  "vim_mode": false,
  "projects_online_by_default": true,
  "terminal": {
    "font_family": "FiraCode Nerd Font Mono",
    "blinking": "off"
  },
  "languages": {
    "C": {
      "format_on_save": "on",
      "formatter": "language_server",
      "preferred_line_length": 64,
      "soft_wrap": "preferred_line_length"
    }
  }
}