是否有在Emacs中进行多行搜索的模块?
我使用过grep
,pt
和现在ag
,他们很棒。但有时在探索代码库时,您会搜索多行中的内容(因此无法获得任何内容),但将搜索减少到较少的单词会产生大量结果。
有没有办法在整个项目中使用Emacs进行多行搜索?
答案 0 :(得分:2)
当然有。有多种方式。
你没有说你想要做什么样的搜索:单个文件?多个缓冲区?正则表达式?您是否需要固定的搜索命中列表或者您想要增量搜索?
这是一个简单的答案:
在Dired缓冲区中,标记要搜索的某些文件,然后点击A
。
键入要匹配的正则表达式。使用C-q C-j
输入要匹配的换行符。点击RET
进入正则表达式。
搜索已标记的文件,依次停止每次搜索。使用M-,
转到下一个匹配等
例如,要搜索变量定义的doc字符串,请使用此regexp或类似字符进行搜索:
Search marked files (regexp): (defvar.*
.*"Non-nil
在您使用.*
输入的第一个C-q C-j
后面有换行符。
在Emacs中还有很多其他搜索方式。 开始的最佳位置是Emacs Wiki的Search and Replace类别。在那里,您可以找到按主要特征进行细分的方法并进行描述。
答案 1 :(得分:0)
我现在使用helm-swoop,这完全符合我的工作流程。