Skip to content

分屏与多光标

这一章解决什么问题

帮助你掌握 Zed 的多文件分屏显示和多光标编辑,大幅提升编辑效率。

资料来源

你会在什么时候用到它

  • 需要同时查看/编辑多个文件时
  • 需要在多处同时修改相同内容时
  • 需要对比两个文件时

分屏编辑

Zed 支持将编辑器区域分割成多个窗格。

分割编辑器

操作快捷键说明
垂直分割Ctrl+K Ctrl+\左右分屏
水平分割Ctrl+K Ctrl+Shift+\上下分屏
关闭当前窗格Ctrl+W关闭当前编辑器

分屏操作示例

  1. 打开文件 A
  2. Ctrl+K Ctrl+\ → 右侧出现新窗格
  3. 在新窗格中打开文件 B
  4. 现在可以同时查看 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

  1. 把光标放在第一个 const
  2. Ctrl+Shift+L → 所有 const 都被选中,每处都有光标
  3. 输入 let → 所有位置同步替换

智能多光标

快捷键功能
Ctrl+D选中当前词,再按选中下一个匹配
Ctrl+K Ctrl+D跳过当前匹配,选中下一个
Ctrl+U撤销上一次光标添加

多光标编辑技巧

示例:批量添加对象属性

typescript
// 原始代码
name
age
city

// 选中三行,多光标编辑后:
this.name = name;
this.age = age;
this.city = city;

操作步骤:

  1. Ctrl+Alt+↓ 向下扩展光标到三行
  2. Home 跳到行首
  3. 输入 this.
  4. End 跳到行尾
  5. 输入 = 和原变量名

多行选择

Alt+鼠标拖动 可以创建矩形选区:

typescript
// 选中多行末尾添加逗号
name    →  name,
age     →  age,
city    →  city,

多缓冲区(Multibuffer)

多缓冲区是 Zed 的独特功能,可以将分散在不同文件中的代码片段提取到一个编辑器中统一编辑。

使用场景

  • 全局搜索后批量修改
  • 查看某个符号的所有引用并修改
  • 代码审查时统一修改

如何使用

  1. 执行全局搜索(Ctrl+Shift+F
  2. 在结果面板中点击提取按钮
  3. 所有匹配片段出现在一个缓冲区中
  4. 直接编辑,保存后修改同步到原文件

Multibuffer 的强大之处

每个片段下方会显示文件名和行号,编辑时就像编辑一个文件,但实际上修改会分散到多个原始文件中。这是 Zed 独有的高效功能。

本章小结

  • Ctrl+K Ctrl+\ 垂直分屏,Ctrl+K Ctrl+Shift+\ 水平分屏
  • Ctrl+数字 快速聚焦到对应窗格
  • Ctrl+Alt+↑/↓ 创建多光标
  • Ctrl+Shift+L 选中所有匹配词
  • Ctrl+D 逐个选中匹配词
  • Multibuffer 可以在一个编辑器中批量修改多文件

小练习

  1. 打开两个文件,用垂直分屏同时查看
  2. Ctrl+Shift+L 选中文件中所有 function 并统一改为 const
  3. Alt+鼠标拖动 创建矩形选区
  4. 用全局搜索 + Multibuffer 批量修改多文件中的同一处代码

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