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

第139章 从 IntelliJ IDEA 迁移至 Zed:安装、快捷键配置与编辑器偏好设置指南

这份指南将教你如何从 IntelliJ IDEA 迁移到 Zed,包括快捷键配置、偏好设置以及需要适应的功能差异。

安装 Zed

Zed 支持 macOS、Windows 和 Linux 系统。

在 macOS 上,你可以从 zed.dev/download 下载,或者通过 Homebrew 安装:

brew install --cask zed

在 Windows 上,从 zed.dev/download 下载安装包,或者使用 winget 安装:

winget install Zed.Zed

对于大多数 Linux 用户,使用安装脚本是最简单的方式:

curl -f https://zed.dev/install.sh | sh

安装完成后,你可以从应用程序文件夹(macOS)、开始菜单(Windows)启动 Zed,或在终端中直接运行 zed .,这将用 Zed 打开当前目录。

配置 JetBrains 快捷键方案

如果你习惯 IntelliJ,启用 JetBrains 快捷键方案能让你迅速上手。在新手引导阶段,你可以选择它作为基础按键映射。如果错过了这一步,之后也可以随时更改:

  1. Cmd+,(macOS)或 Ctrl+,(Linux/Windows)打开设置
  2. 搜索 Base Keymap
  3. 选择 JetBrains

该方案映射了熟悉的快捷键,例如使用 Shift Shift 触发“查找所有”,Cmd+O 跳转到类,Cmd+Shift+A 查找操作。

在编辑器中,JetBrains 方案还让 Alt+Left / Alt+Right 以及 Shift+Alt+Left / Shift+Alt+Right 支持按子词移动和选择。因此,camelCasesnake_case 等标识符的行为与 IntelliJ 的驼峰导航逻辑一致。

设置编辑器偏好

你可以在设置编辑器中配置大多数选项({#kb zed::OpenSettings})。如需高级配置,通过命令面板运行 {#action zed::OpenSettingsFile} 来直接编辑设置文件。

IntelliJ 用户通常最先配置的选项包括:

Zed 设置项 功能说明
format_on_save 保存时自动格式化。设置为 "on" 以启用。
soft_wrap 自动换行。可选值:"none""editor_width""preferred_line_length"
preferred_line_length 换行和标尺的列宽,默认为 80。
inlay_hints 在代码中内联显示参数名和类型提示,类似 IntelliJ 的 hints。
relative_line_numbers 如果你是从 IdeaVim 转过来的,这个会很有用。

Zed 还支持项目级设置。在项目根目录创建 .zed/settings.json 文件,即可覆盖该项目的全局设置,类似于 IntelliJ 中的 .idea 文件夹。

提示:如果你要加入一个已有项目,在第一次提交前先检查 format_on_save 的设置。否则你本来只想改一行代码,结果可能不小心把整个文件重新格式化了。

打开或创建项目

设置完成后,按 Cmd+Shift+O(JetBrains 键位方案)即可打开一个文件夹,它会成为你在 Zed 中的工作区。与 IntelliJ 不同,这里没有项目配置向导、没有 .iml 文件,也不需要配置 SDK。

要新建项目,先用终端或文件管理器创建一个目录,然后在 Zed 中打开它。编辑器会将该文件夹视为项目根目录。

你也可以在任意文件夹下通过终端启动 Zed: zed .

进入项目后:

  • 使用 Cmd+Shift+OC了md+E 在文件间快速跳转(类似 IntelliJ 的“最近文件”)
  • 使用 Cmd+Shift+AShift Shift 打开命令面板(类似 IntelliJ 的“随处搜索”)
  • 使用 Cmd+O 搜索符号(类似 IntelliJ 的“跳转到类”)

打开的文件会以标签页形式显示在顶部。Project Panel 展示文件树和 Git 状态,用 Cmd+1 切换显示(就像 IntelliJ 的 Project 工具窗口)。

快捷键差异

如果你在引导过程中选择了 JetBrains 键位方案,大部分快捷键应该已经觉得很熟悉了。下面快速对比一下 Zed 和 IntelliJ 的快捷键。

相同的常用快捷键(Zed JetBrains 键位方案 ↔ IntelliJ)

操作 快捷键
随处搜索(Search Everywhere) Shift Shift
查找动作 / 命令面板 Cmd + Shift + A
跳转到文件 Cmd + Shift + O
跳转到符号 / 类 Cmd + O
最近文件 Cmd + E
跳转到定义 Cmd + B
查找用法 Alt + F7
重命名符号 Shift + F6
格式化代码 Cmd + Alt + L
切换项目面板 Cmd + 1
切换终端 Alt + F12
复制当前行 Cmd + D
删除当前行 Cmd + Backspace
上移/下移行 Shift + Alt + 上/下箭头
扩展/收缩选区 Alt + 上/下箭头
按子词移动 Alt + 左/右箭头
按子词选择 Shift + Alt + 左/右箭头
注释当前行 Cmd + /
后退 / 前进 Cmd + [ / Cmd + ]
切换断点 Ctrl + F8

快捷键差异(IntelliJ → Zed)

操作 IntelliJ Zed(JetBrains 按键映射)
文件结构 Cmd + F12 Cmd + F12(大纲)
跳转到下一个错误 F2 F2
运行 Ctrl + R Ctrl + Alt + R(任务)
调试 Ctrl + D Alt + Shift + F9
停止 Cmd + F2 Ctrl + F2

Zed 独有功能

操作 快捷键 备注
切换右侧停靠面板 Cmd + R Agent 面板、通知
分屏 Cmd + K,然后按方向键 可任意方向创建分屏

如何自定义快捷键

  • 打开命令面板(Cmd+Shift+AShift Shift
  • 运行 {#action zed::OpenKeymap}

这将列出所有可用的按键绑定。你可以覆盖单个快捷键或移除冲突。

Zed 还支持按键序列(多键快捷键)。

界面差异

没有索引构建

如果你曾在大型项目中使用过 IntelliJ,你就熟悉那种等待:“正在索引……”根据项目大小不同,耗时可能从 30 秒到 15 分钟不等。IntelliJ 会构建整个代码库的全面索引,以支撑其代码智能功能,并在依赖变更或构建后重新索引。

Zed 不做索引。打开文件夹即可立即开始工作,无论项目多大,文件搜索和导航都是即时的。

IntelliJ 的索引支撑着查找全代码库用法、理解类层次结构以及检测死代码等功能。Zed 将这些工作委派给语言服务器,而这些服务器可能无法达到同等分析深度。

如何适应:

  • 项目范围的符号搜索:使用 Cmd+O / 转到符号(依赖你的语言服务器)
  • 按文件名查找:使用 Cmd+Shift+O / 转到文件
  • 跨文件文本搜索:使用 Cmd+Shift+F——即使在大型代码库上也很快速
  • 若需要对 JVM 代码进行深度静态分析,可考虑将 IntelliJ 的检查作为独立步骤运行,或使用 Checkstyle、PMD、SpotBugs 等独立工具

LSP 与原生语言智能

IntelliJ 为每种支持的语言从零构建了专属语言分析引擎。对于 Java、Kotlin 及其他 JVM 语言,该引擎能深入理解代码:解析类型、跟踪数据流、识别框架注解,并提供数十种专用重构功能。

Zed 使用 Language Server Protocol(LSP)提供代码智能。每种语言都有独立的服务器:Java 用 jdtls,Rust 用 rust-analyzer,等等。

对某些语言而言,LSP 体验非常出色。TypeScript、Rust 和 Go 拥有成熟的语言服务器,能提供快速、精准的补全、诊断和重构。但就 JVM 语言而言,差距可能更明显。基于 Eclipse 的 Java 语言服务器能力足够,但在以下方面无法与 IntelliJ 的深度相媲美:

  • Spring 和 Jakarta EE 注解处理
  • 复杂重构(提取接口、上移成员、修改签名并更新所有调用方)
  • 感知框架的代码检查
  • 按自定义排序规则自动优化 import

如何适应:

  • 使用 Alt+Enter 调出可用的代码操作,具体列表取决于语言服务器
  • 对于 Java,需要在设置中正确配置 jdtls 的 JDK 路径

没有项目模型

IntelliJ 通过 .idea 文件夹(内含 XML 配置文件)、.iml 模块定义、SDK 配置和运行配置来管理项目。这套模型让 IntelliJ 能够理解多模块项目、自动管理依赖,并保存复杂的运行/调试配置。

Zed 没有项目模型。项目就是一个文件夹,没有向导、没有 SDK 选择界面、也没有模块配置。

这意味着:

  • 构建命令要手动执行,Zed 不会自动识别 Maven 或 Gradle 项目。
  • 没有运行配置,你需要自定义任务或直接用终端。
  • SDK 管理在 Zed 之外,语言服务器用的是 PATH 里的 JDK。
  • 没有模块边界,Zed 看到的只是文件夹,而不是项目结构。

如何适应:

  • 在项目根目录创建 .zed/settings.json 来配置项目级设置
  • tasks.json 中定义常用命令(通过 Command Palette 打开:{#action zed::OpenTasks}):
[
  {
    "label": "build",
    "command": "./gradlew build"
  },
  {
    "label": "run",
    "command": "./gradlew bootRun"
  },
  {
    "label": "test current file",
    "command": "./gradlew test --tests $ZED_STEM"
  }
]
  • Ctrl+Alt+R 快速运行任务
  • 任务覆盖不到的操作,就用终端(Alt+F12)解决
  • 多模块项目可以把每个模块作为独立的 Zed 窗口打开,也可以打开根目录后通过文件查找器导航

没有框架集成

IntelliJ 在企业级 Java 开发中的价值,很大程度上归功于其框架集成能力。它能理解并导航 Spring Bean,对 JPA 实体有专门处理,端点可被索引和搜索,Jakarta EE 注解也会改变 IDE 分析代码的方式。 Zed 没有这些功能。语言服务器只把 Java 当作普通的 Java 代码,因此它不会识别 `@Autowired` 的特殊含义,也不会意识到某个类是 REST 控制器。 其他技术栈也类似:没有 Rails 集成,没有 Django 支持,除了 TypeScript 语言服务器提供的功能外,也没有 Angular 或 React 的专属工具。 如何适应: 利用 grep 和文件搜索。用正则表达式配合 Cmd+Shift+F,可以查找端点定义、Bean 名称或注解的使用位置。 依赖语言服务器的“查找引用”功能(Alt+F7)进行导航。它可用,只是缺少框架上下文。 对于 Spring Boot,保留 Actuator 端点或使用其他工具来理解 Bean 的装配过程。 考虑在 Zed 的终端里使用框架特定的命令行工具,如 Spring CLI 或 Rails 生成器。 提示:对于数据库操作,建议选用 DataGrip、DBeaver 或 TablePlus 等专用工具。许多转向 Zed 的开发者仍会保留 DataGrip 专门用于 SQL 处理,因为它能与现有的 JetBrains 许可证良好集成。 如果日常工作高度依赖框架感知的导航和重构,你会明显感觉到缺失。当你习惯通过搜索而非专用工具导航代码,或当你的语言拥有强大的 LSP 支持并能覆盖大多数需求时,Zed 的表现最好。 工具窗口与停靠区 IntelliJ 将辅助视图组织为编号的工具窗口(项目=1,Git=9,终端=Alt+F12 等)。Zed 使用类似的概念,称为“停靠区”: IntelliJ 工具窗口 | Zed 对应项 | 快捷键(JetBrains 键位映射) 项目(1) | 项目面板 | Cmd + 1 Git(9 或 Cmd+0) | Git 面板 | Cmd + 0 终端(Alt+F12) | 终端面板 | Alt + F12 结构(7) | 大纲面板 | Cmd + 7 问题(6) | 诊断 Cmd + 6 Debug (5) 调试面板 Cmd + 5

Zed 支持三种停靠位置:左侧、底部和右侧。你可以通过拖拽或在设置中将面板移动至不同的停靠位置。

提示:IntelliJ 有一个“覆盖 IDE 快捷键”的设置,允许 Ctrl+Left/Right 等终端快捷键正常工作。在 Zed 中,终端的键位映射是独立的——如果熟悉的快捷键在终端面板中失效,请检查你的键位映射配置。

调试

IntelliJ 和 Zed 都提供集成的调试功能,但体验有所不同:

  • Zed 的调试器使用 Debug Adapter Protocol (DAP),支持多种语言
  • 使用 Ctrl+F8 设置断点
  • 使用 Alt+Shift+F9 启动调试
  • 使用 F7(单步进入)、F8(单步跳过)和 Shift+F8(单步跳出)逐步执行代码
  • 使用 F9 继续执行

调试面板(Cmd+5)显示变量、调用栈和断点——与 IntelliJ 的 Debug 工具窗口类似。

扩展与插件

IntelliJ 拥有庞大的插件目录,涵盖从语言支持到数据库工具再到部署集成的各个方面。

Zed 的扩展目录规模较小,但更加专注:

  • 语言支持和语法高亮
  • 主题
  • 上下文服务器

其他编辑器需要插件才能使用的多项功能,在 Zed 中已内置:

  • 支持语音聊天的实时协作
  • AI 编码辅助
  • 内置终端
  • 任务运行器
  • 基于 LSP 的代码智能

你无法为每个 IntelliJ 插件找到一对一的替代品,尤其是针对特定框架的工具、数据库客户端或应用服务器集成。对于这些工作流,你可能需要在 Zed 之外使用外部工具。

Zed 与 IntelliJ 中的协作

IntelliJ 通过独立的插件 Code With Me 提供协作功能。Zed 则将协作功能集成在核心体验中。

连接成功后,双方的光标、选区和编辑内容都会实时可见,还自带语音通话功能,无需额外的工具或第三方登录。

在 Zed 中使用 AI

如果你习惯在 IntelliJ 里用 AI 助手(如 GitHub Copilot 或 JetBrains AI),Zed 也提供类似能力,而且更灵活。

配置 GitHub Copilot

  1. Cmd+,(macOS)或 Ctrl+,(Linux/Windows)打开设置
  2. 进入 AI → Edit Predictions
  3. 点击 "Configure Providers" 旁边的 Configure
  4. GitHub Copilot 下点击 Sign in to GitHub

登录后直接开始输入即可,Zed 会内联给出建议,你只需选择接受。

其他 AI 选项

在 Zed 中使用其他 AI 模型,有几种方式:

高级配置与效率调优

Zed 为追求极致体验的用户提供了丰富的高级设置,方便微调开发环境。

下面是几个实用的配置项:

保存时自动格式化:

"format_on_save": "on"

启用 direnv 支持:

"load_direnv": "shell_hook"

配置语言服务器(需手动编辑 JSON):做 Java 开发时,可以在设置中配置 Java 语言服务器:

{
  "lsp": {
    "jdtls": {
      "settings": {
        "java_home": "/path/to/jdk"
      }
    }
  }
}

下一步

环境搭建完成后,以下资源可以帮你更好地发挥 Zed 的潜力:

  • All Settings —— 自定义设置、主题和编辑器行为
  • 快捷键 — 了解如何自定义和扩展快捷键方案
  • 任务 — 为项目配置构建和运行命令
  • AI 功能 — 探索 Zed 在代码补全之外的 AI 能力
  • 协作 — 实时共享项目并进行协同编码
  • 语言支持 — 包括 Java 和 Kotlin 在内的特定语言配置指南

评论 (0)