Emacs 批量搜索替换:从场景到命令
💡
原文中文,约4500字,阅读约需11分钟。
📝
内容提要
本文介绍了 Emacs 中的批量搜索和替换命令,包括 rgrep、find-grep-dired 和 project-find-regexp 等,适用于搜索目录、项目及标记文件。强调在使用前需备份文件,并提供了速查表以便快速查找命令。
🎯
关键要点
- Emacs 提供多种批量搜索和替换命令,适用于不同场景。
- 使用前需备份文件,以防替换错误导致数据丢失。
- Emacs 中有两种正则语法:grep regexp 和 Emacs regexp,需根据命令选择使用。
- rgrep 是在目录中搜索的标准命令,结果展示在 *grep* buffer 中。
- find-grep-dired 允许在 Dired buffer 中查看搜索结果,便于批量操作。
- project-find-regexp 和 project-query-replace-regexp 用于在项目范围内搜索和替换。
- Dired 和 IBuffer 提供灵活的搜索和替换功能,可以在标记的文件或 buffer 中操作。
- tags-search 和 xref 相关命令基于代码语义进行搜索和替换,适合有 TAGS 或 LSP 支持的项目。
- 速查表提供了不同场景下的命令和正则类型,便于快速查找。
❓
延伸问答
Emacs 中有哪些批量搜索和替换的命令?
Emacs 中的批量搜索和替换命令包括 rgrep、find-grep-dired、project-find-regexp 和 project-query-replace-regexp 等。
使用 Emacs 进行批量替换前需要注意什么?
在使用 Emacs 进行批量替换前,需备份文件,以防替换错误导致数据丢失。
Emacs 中的正则语法有哪些区别?
Emacs 中有两种正则语法:grep regexp 调用外部 grep 程序,Emacs regexp 使用 Emacs 自己的正则引擎,二者的转义规则不同。
如何在 Dired 中批量搜索文件?
在 Dired 中,可以使用 dired-do-find-regexp 命令对标记的文件进行批量搜索,结果展示在 *grep* buffer 中。
Emacs 如何在项目范围内进行搜索和替换?
可以使用 project-find-regexp 进行项目范围内的搜索,使用 project-query-replace-regexp 进行逐一替换。
如何在 IBuffer 中进行搜索和替换?
在 IBuffer 中,可以使用 ibuffer-do-isearch 进行递增搜索,使用 ibuffer-do-query-replace 进行逐一替换。
➡️