Skip to content

代码编辑

这一章解决什么问题

帮助你掌握 Zed 的代码编辑核心功能,包括智能补全、诊断修复、代码导航、格式化等。

资料来源

你会在什么时候用到它

  • 日常编写和修改代码
  • 需要理解代码结构时
  • 需要修复类型错误时

基本编辑操作

Zed 的编辑操作与大多数现代编辑器类似:

操作快捷键说明
撤销Ctrl+Z
重做Ctrl+YCtrl+Shift+Z
剪切Ctrl+X
复制Ctrl+C
粘贴Ctrl+V
全选Ctrl+A
查找Ctrl+F当前文件内搜索
替换Ctrl+H当前文件内替换
跳转到行Ctrl+G输入行号跳转

代码补全

Zed 通过 LSP(Language Server Protocol)提供智能代码补全。

触发补全

  • 自动触发:输入时自动显示补全建议
  • 手动触发Ctrl+Space 强制触发补全

补全类型

类型图标说明
函数/方法ƒ函数或方法
变量变量或常量
类/接口类、接口、类型
模块📦模块或命名空间
属性对象的属性

接受补全

  • TabEnter:接受当前选中的补全
  • / :在补全列表中上下选择
  • Escape:关闭补全窗口

补全文档

补全项右侧如果有 ? 图标,按 Ctrl+Space 可以查看详细文档说明。

诊断与快速修复

Zed 通过 LSP 实时显示代码中的错误和警告。

诊断指示

代码中的问题以下划线形式显示:

样式级别说明
红色波浪线Error编译/运行时错误
橙色波浪线Warning潜在问题
蓝色波浪线Information提示信息

查看诊断详情

将鼠标悬停在有下划线的代码上,会显示浮窗说明问题详情。

快速修复(Quick Fix)

当代码有可修复的问题时,行号旁会显示 💡 图标:

  1. 将光标移到问题代码上
  2. Ctrl+. 或点击 💡 图标
  3. 选择修复方案

批量修复

在诊断面板(底部 Ctrl+Shift+M)中,可以批量应用修复。

内联诊断

Zed 可以在行尾显示诊断信息:

json
{
  "diagnostics": {
    "inline": {
      "enabled": true
    }
  }
}

代码导航

跳转到定义

  • F12:跳转到光标下符号的定义位置
  • Ctrl+Click:鼠标点击跳转

查看引用

  • Shift+F12:查看光标下符号的所有引用位置
  • 会打开一个面板列出所有引用

返回/前进

  • Alt+Left:返回上一个光标位置
  • Alt+Right:前进到下一个光标位置

面包屑导航

编辑器顶部显示当前位置的符号路径(如 src > components > Button > render),点击可以:

  • 跳转到上级符号
  • 浏览文件结构

大纲面板

Ctrl+Shift+BCtrl+Shift+O 打开大纲面板,显示当前文件的符号树:

  • 点击符号名跳转到对应位置
  • 支持模糊搜索

代码格式化

格式化当前文件

  • Shift+Alt+F:格式化当前文件
  • 保存时自动格式化(如果启用)

保存时格式化配置

json
{
  "format_on_save": "on"
}

选项:

  • "on" — 保存时自动格式化
  • "off" — 不自动格式化

格式化工具

Zed 使用以下优先级选择格式化工具:

  1. 语言服务器内置格式化
  2. 配置的 external formatter
  3. Prettier(如果启用且支持该语言)

为特定语言配置格式化

json
{
  "languages": {
    "Python": {
      "formatter": {
        "external": {
          "command": "black",
          "arguments": ["-"]
        }
      }
    }
  }
}

智能编辑功能

括号匹配

Zed 自动匹配括号,支持 ()[]{}""'' 等。

  • 输入左括号自动插入右括号
  • Ctrl+Shift+\:在匹配的括号间跳转

自动缩进

Zed 根据语言自动处理缩进:

json
{
  "auto_indent": "language_defined",
  "tab_size": 2,
  "hard_tabs": false
}

代码折叠

快捷键功能
Ctrl+Shift+[折叠当前区域
Ctrl+Shift+]展开当前区域
Ctrl+K Ctrl+0折叠所有
Ctrl+K Ctrl+J展开所有

本章小结

  • 代码补全由 LSP 提供,支持 Ctrl+Space 手动触发
  • 诊断以下划线形式显示,Ctrl+. 快速修复
  • F12 跳转定义,Shift+F12 查看引用
  • Shift+Alt+F 格式化,format_on_save 自动格式化
  • 支持括号匹配、自动缩进、代码折叠

小练习

  1. 在一个 TypeScript 文件中输入 .,体验智能补全
  2. 故意写一个类型错误,查看诊断下划线,然后用 Ctrl+. 修复
  3. F12 跳转到某个函数的定义
  4. Shift+Alt+F 格式化一个格式凌乱的文件

基于 Zed 官方文档及社区资料整理,仅供学习参考