代码编辑
这一章解决什么问题
帮助你掌握 Zed 的代码编辑核心功能,包括智能补全、诊断修复、代码导航、格式化等。
资料来源
你会在什么时候用到它
- 日常编写和修改代码
- 需要理解代码结构时
- 需要修复类型错误时
基本编辑操作
Zed 的编辑操作与大多数现代编辑器类似:
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 撤销 | Ctrl+Z | |
| 重做 | Ctrl+Y 或 Ctrl+Shift+Z | |
| 剪切 | Ctrl+X | |
| 复制 | Ctrl+C | |
| 粘贴 | Ctrl+V | |
| 全选 | Ctrl+A | |
| 查找 | Ctrl+F | 当前文件内搜索 |
| 替换 | Ctrl+H | 当前文件内替换 |
| 跳转到行 | Ctrl+G | 输入行号跳转 |
代码补全
Zed 通过 LSP(Language Server Protocol)提供智能代码补全。
触发补全
- 自动触发:输入时自动显示补全建议
- 手动触发:
Ctrl+Space强制触发补全
补全类型
| 类型 | 图标 | 说明 |
|---|---|---|
| 函数/方法 | ƒ | 函数或方法 |
| 变量 | ▢ | 变量或常量 |
| 类/接口 | ◆ | 类、接口、类型 |
| 模块 | 📦 | 模块或命名空间 |
| 属性 | • | 对象的属性 |
接受补全
Tab或Enter:接受当前选中的补全↑/↓:在补全列表中上下选择Escape:关闭补全窗口
补全文档
补全项右侧如果有 ? 图标,按 Ctrl+Space 可以查看详细文档说明。
诊断与快速修复
Zed 通过 LSP 实时显示代码中的错误和警告。
诊断指示
代码中的问题以下划线形式显示:
| 样式 | 级别 | 说明 |
|---|---|---|
| 红色波浪线 | Error | 编译/运行时错误 |
| 橙色波浪线 | Warning | 潜在问题 |
| 蓝色波浪线 | Information | 提示信息 |
查看诊断详情
将鼠标悬停在有下划线的代码上,会显示浮窗说明问题详情。
快速修复(Quick Fix)
当代码有可修复的问题时,行号旁会显示 💡 图标:
- 将光标移到问题代码上
- 按
Ctrl+.或点击 💡 图标 - 选择修复方案
批量修复
在诊断面板(底部 Ctrl+Shift+M)中,可以批量应用修复。
内联诊断
Zed 可以在行尾显示诊断信息:
json
{
"diagnostics": {
"inline": {
"enabled": true
}
}
}代码导航
跳转到定义
F12:跳转到光标下符号的定义位置Ctrl+Click:鼠标点击跳转
查看引用
Shift+F12:查看光标下符号的所有引用位置- 会打开一个面板列出所有引用
返回/前进
Alt+Left:返回上一个光标位置Alt+Right:前进到下一个光标位置
面包屑导航
编辑器顶部显示当前位置的符号路径(如 src > components > Button > render),点击可以:
- 跳转到上级符号
- 浏览文件结构
大纲面板
按 Ctrl+Shift+B 或 Ctrl+Shift+O 打开大纲面板,显示当前文件的符号树:
- 点击符号名跳转到对应位置
- 支持模糊搜索
代码格式化
格式化当前文件
Shift+Alt+F:格式化当前文件- 保存时自动格式化(如果启用)
保存时格式化配置
json
{
"format_on_save": "on"
}选项:
"on"— 保存时自动格式化"off"— 不自动格式化
格式化工具
Zed 使用以下优先级选择格式化工具:
- 语言服务器内置格式化
- 配置的 external formatter
- 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自动格式化- 支持括号匹配、自动缩进、代码折叠
小练习
- 在一个 TypeScript 文件中输入
.,体验智能补全 - 故意写一个类型错误,查看诊断下划线,然后用
Ctrl+.修复 - 用
F12跳转到某个函数的定义 - 用
Shift+Alt+F格式化一个格式凌乱的文件