分屏与多光标
这一章解决什么问题
帮助你掌握 Zed 的多文件分屏显示和多光标编辑,大幅提升编辑效率。
资料来源
你会在什么时候用到它
- 需要同时查看/编辑多个文件时
- 需要在多处同时修改相同内容时
- 需要对比两个文件时
分屏编辑
Zed 支持将编辑器区域分割成多个窗格。
分割编辑器
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 垂直分割 | Ctrl+K Ctrl+\ | 左右分屏 |
| 水平分割 | Ctrl+K Ctrl+Shift+\ | 上下分屏 |
| 关闭当前窗格 | Ctrl+W | 关闭当前编辑器 |
分屏操作示例
- 打开文件 A
- 按
Ctrl+K Ctrl+\→ 右侧出现新窗格 - 在新窗格中打开文件 B
- 现在可以同时查看 A 和 B
窗格间导航
| 快捷键 | 功能 |
|---|---|
Ctrl+1 | 聚焦第 1 个窗格 |
Ctrl+2 | 聚焦第 2 个窗格 |
Ctrl+3 | 聚焦第 3 个窗格 |
Ctrl+K Ctrl+→ | 移动到右边窗格 |
Ctrl+K Ctrl+← | 移动到左边窗格 |
分屏使用场景
- 对比文件:左右对照查看两个文件
- 编辑 + 预览:左边编辑代码,右边查看效果或文档
- 接口 + 实现:左边接口定义,右边具体实现
多光标编辑
多光标是最高效的批量编辑方式。Zed 支持多种创建多光标的方法。
基础多光标
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 在下一行添加光标 | Ctrl+Alt+↓ | 向下扩展光标 |
| 在上一行添加光标 | Ctrl+Alt+↑ | 向上扩展光标 |
| 点击添加光标 | Alt+Click | 在点击位置添加光标 |
| 选中所有匹配 | Ctrl+Shift+L | 选中当前词的所有出现 |
多光标使用示例
假设你有如下代码:
typescript
const name = "Alice";
const age = 25;
const city = "Beijing";想要把所有 const 改成 let:
- 把光标放在第一个
const上 - 按
Ctrl+Shift+L→ 所有const都被选中,每处都有光标 - 输入
let→ 所有位置同步替换
智能多光标
| 快捷键 | 功能 |
|---|---|
Ctrl+D | 选中当前词,再按选中下一个匹配 |
Ctrl+K Ctrl+D | 跳过当前匹配,选中下一个 |
Ctrl+U | 撤销上一次光标添加 |
多光标编辑技巧
示例:批量添加对象属性
typescript
// 原始代码
name
age
city
// 选中三行,多光标编辑后:
this.name = name;
this.age = age;
this.city = city;操作步骤:
Ctrl+Alt+↓向下扩展光标到三行- 按
Home跳到行首 - 输入
this. - 按
End跳到行尾 - 输入
=和原变量名
多行选择
Alt+鼠标拖动 可以创建矩形选区:
typescript
// 选中多行末尾添加逗号
name → name,
age → age,
city → city,多缓冲区(Multibuffer)
多缓冲区是 Zed 的独特功能,可以将分散在不同文件中的代码片段提取到一个编辑器中统一编辑。
使用场景
- 全局搜索后批量修改
- 查看某个符号的所有引用并修改
- 代码审查时统一修改
如何使用
- 执行全局搜索(
Ctrl+Shift+F) - 在结果面板中点击提取按钮
- 所有匹配片段出现在一个缓冲区中
- 直接编辑,保存后修改同步到原文件
Multibuffer 的强大之处
每个片段下方会显示文件名和行号,编辑时就像编辑一个文件,但实际上修改会分散到多个原始文件中。这是 Zed 独有的高效功能。
本章小结
Ctrl+K Ctrl+\垂直分屏,Ctrl+K Ctrl+Shift+\水平分屏Ctrl+数字快速聚焦到对应窗格Ctrl+Alt+↑/↓创建多光标Ctrl+Shift+L选中所有匹配词Ctrl+D逐个选中匹配词- Multibuffer 可以在一个编辑器中批量修改多文件
小练习
- 打开两个文件,用垂直分屏同时查看
- 用
Ctrl+Shift+L选中文件中所有function并统一改为const - 用
Alt+鼠标拖动创建矩形选区 - 用全局搜索 + Multibuffer 批量修改多文件中的同一处代码