搜索与替换
这一章解决什么问题
帮助你掌握 Zed 的搜索和替换功能,包括当前文件搜索、全局搜索、正则表达式、替换等。
资料来源
你会在什么时候用到它
- 在当前文件中查找代码
- 在项目中全局搜索
- 批量替换代码
当前文件搜索
基本搜索
- 快捷键:
Ctrl+F - 输入搜索内容,按
Enter跳到下一个匹配 Shift+Enter跳到上一个匹配
搜索选项
搜索框可以展开高级选项:
| 选项 | 快捷键 | 说明 |
|---|---|---|
| 区分大小写 | Alt+C | 默认不区分 |
| 全字匹配 | Alt+W | 匹配完整单词 |
| 正则表达式 | Alt+R | 使用正则表达式搜索 |
| 保留大小写 | 替换时保留原大小写 |
替换
- 快捷键:
Ctrl+H - 替换框在搜索框下方
Enter:替换当前匹配并跳到下一个Ctrl+Enter:替换所有匹配
批量替换技巧
先用 Ctrl+F 确认搜索结果正确,再切换到 Ctrl+H 执行替换,避免误替换。
全局搜索(项目搜索)
在整个项目中搜索文件内容。
打开全局搜索
- 快捷键:
Ctrl+Shift+F - 或命令面板 →
project search: new search
全局搜索面板
全局搜索面板提供:
- 搜索框:输入搜索内容
- 包含文件:限制搜索的文件模式(如
*.ts) - 排除文件:排除的文件模式
- 搜索结果:显示匹配的文件和行
搜索模式
搜索框: function handle
包含: src/**/*.ts
排除: *.test.ts, node_modules/**从搜索结果中操作
| 操作 | 方式 |
|---|---|
| 打开文件 | 点击搜索结果 |
| 查看上下文 | 展开/折叠匹配项 |
| 替换所有 | 输入替换内容后点击 Replace All |
| 仅替换部分 | 展开结果,逐个点击替换 |
多缓冲区编辑(Multibuffer)
全局搜索的一个重要特性是可以在一个编辑器中同时编辑所有匹配结果:
- 执行全局搜索
- 点击结果上方的按钮将所有匹配提取到一个新缓冲区
- 在这个缓冲区中可以直接编辑所有匹配位置的代码
- 保存时,修改会同步回原始文件
批量重构利器
Multibuffer 是 Zed 的独特功能。比如你想给所有 console.log 添加前缀,搜索 console.log,提取到 multibuffer,一次性修改,保存后所有文件同步更新。
搜索文件(File Finder)
按文件名搜索并打开文件:
- 快捷键:
Ctrl+P - 支持模糊匹配
- 输入
?查看帮助
搜索符号
项目中搜索符号
- 快捷键:
Ctrl+T - 搜索项目中的函数、类、变量等
当前文件中搜索符号
- 快捷键:
Ctrl+Shift+O - 在当前文件中导航
正则表达式搜索
开启正则表达式模式(Alt+R)后,可以使用正则:
| 表达式 | 匹配 |
|---|---|
\d+ | 数字 |
[a-zA-Z_]+ | 变量名 |
function\s+(\w+) | 函数定义(可捕获组) |
^import | 行首的 import |
正则替换注意
正则替换中,$1、$2 表示捕获组。Windows 用户注意:Zed 中使用 $ 而不是 VS Code 中的 $ 或 Python 中的 \\1。
本章小结
Ctrl+F当前文件搜索,Ctrl+Shift+F全局搜索- 搜索支持大小写敏感、全字匹配、正则表达式
Ctrl+H替换,Ctrl+Shift+H全局替换- Multibuffer 可以同时编辑所有搜索结果
Ctrl+P搜索文件,Ctrl+T搜索符号
小练习
- 用
Ctrl+F在当前文件中搜索一个函数名 - 用
Ctrl+Shift+F在项目中搜索 TODO 注释 - 用正则表达式搜索所有
console.log(...) - 尝试使用 Multibuffer 批量修改搜索结果