Skip to content

搜索与替换

这一章解决什么问题

帮助你掌握 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)

全局搜索的一个重要特性是可以在一个编辑器中同时编辑所有匹配结果

  1. 执行全局搜索
  2. 点击结果上方的按钮将所有匹配提取到一个新缓冲区
  3. 在这个缓冲区中可以直接编辑所有匹配位置的代码
  4. 保存时,修改会同步回原始文件

批量重构利器

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 搜索符号

小练习

  1. Ctrl+F 在当前文件中搜索一个函数名
  2. Ctrl+Shift+F 在项目中搜索 TODO 注释
  3. 用正则表达式搜索所有 console.log(...)
  4. 尝试使用 Multibuffer 批量修改搜索结果

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