Emacs - 多行搜索

4

有没有一个模块在Emacs中进行多行搜索?

我已经使用了grepptag,它们都非常好用。但是有时候当你浏览代码库时,你会搜索跨越多行的内容(因此什么也找不到),但是将搜索范围缩小到更少的单词会产生很多结果。

是否有一种方法可以在整个项目中使用Emacs进行多行搜索?

1个回答

3
当然有。有多种方法。
你没有说明你要进行哪种搜索:单个文件?多个缓冲区?正则表达式?您需要固定的搜索结果列表还是想要增量搜索?
以下是一个简单的答案:
1. 在Dired缓冲区中,标记一些要搜索的文件,然后按A键。 2. 输入要匹配的正则表达式。使用C-q C-j输入换行符以进行匹配,然后按RET键输入正则表达式。 3. 这将在标记的文件中进行搜索,并逐个停止在每个搜索结果处。使用M-,等命令继续查找下一个搜索结果。
例如,要搜索变量定义的文档字符串,请使用此正则表达式或类似的表达式:
Search marked files (regexp): (defvar.*
.*"Non-nil

在第一个 .* 后有一个换行符,您可以使用 C-q C-j 输入。


在Emacs中,有许多其他搜索的方法。最好的起点是Emacs Wiki的 搜索和替换 分类。在那里,您可以找到按主要特征分解并进行描述的搜索方法。


谢谢您的回答。我编辑了我的问题:我正在寻找一个项目。我不需要正则表达式搜索。增量搜索更可取,因为它是用于探索的。 - nha
关于插入换行符的提示同样适用于字面(即非正则表达式)搜索。M-s a C-s(命令dired-do-isearch)对标记的文件(例如“项目”)进行字面意义上的搜索。另请参阅书签以定义一组文件作为项目(代码库)。有关定义、搜索等项目的更多信息,请参见EmacsWiki上的Project类别。 - Drew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接