Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs-多行搜索_Emacs_Full Text Search - Fatal编程技术网

Emacs-多行搜索

Emacs-多行搜索,emacs,full-text-search,Emacs,Full Text Search,在Emacs中是否有多行搜索模块 我曾经用过grep,pt,现在又用过ag,它们都很棒。但有时在探索代码库时,您会搜索多行上的内容(因此一无所获),但将搜索减少到较少的单词会产生大量结果 有没有一种方法可以在整个项目的Emacs中进行多行搜索?当然有。有多种方法 你没有说你想做什么样的搜索:单个文件?多缓冲区?regexp?您需要固定的搜索点击列表还是需要增量搜索 这里有一个简单的答案: 在Dired缓冲区中,标记一些要搜索的文件,然后点击a 键入要匹配的regexp。使用C-q C-j输入要

在Emacs中是否有多行搜索模块

我曾经用过
grep
pt
,现在又用过
ag
,它们都很棒。但有时在探索代码库时,您会搜索多行上的内容(因此一无所获),但将搜索减少到较少的单词会产生大量结果


有没有一种方法可以在整个项目的Emacs中进行多行搜索?

当然有。有多种方法

你没有说你想做什么样的搜索:单个文件?多缓冲区?regexp?您需要固定的搜索点击列表还是需要增量搜索


这里有一个简单的答案:

  • 在Dired缓冲区中,标记一些要搜索的文件,然后点击
    a

  • 键入要匹配的regexp。使用
    C-q C-j
    输入要匹配的换行符。点击
    RET
    输入regexp

  • 它搜索标记的文件,在每次搜索命中时依次停止。使用
    M-,
    转到下一次点击,等等

    例如,要搜索变量定义的文档字符串,请使用此regexp或类似工具进行搜索:

    Search marked files (regexp): (defvar.*
    .*"Non-nil
    
    在第一个
    *
    后面有一个换行字符,您可以使用
    C-qc-j
    输入该字符



    在Emacs中还有很多其他的搜索方法。开始的最佳位置是Emacs Wiki类别。在那里,您可以找到按主要特征分类并进行描述的搜索方法。

    我现在使用的,非常适合我的工作流程。

    谢谢您的回答。我编辑了我的问题:我正在搜索一个项目。我不需要正则表达式搜索。增量搜索更可取,因为它是用于探索的。关于插入换行符的相同技巧也适用于文本(即非regexp)搜索
    M-s a C-s
    (命令
    dired do isearch
    )对标记的文件(例如“项目”)执行文字isearch。另请参见将一组文件定义为项目(代码库)的书签。有关定义、搜索等项目的更多信息,请参见EmacsWiki上的类别。这与问题无关。