我想在Emacs中使用类似的工具,如Vim中的以下内容
:g/search/
获取匹配列表。
如何在Emacs中获得匹配列表?
答案 0 :(得分:16)
M-x occur
?
来自the manual:
M-x occur
提示正则表达式,并显示一个列表,显示缓冲区中包含匹配项的每一行。匹配的文本使用
match
面突出显示。要将搜索限制为部分缓冲区,请缩小到该部分(请参阅缩小)。数字参数n
指定在每个匹配行之前和之后显示n
个上下文行。上下文行的默认数量由变量list-matching-lines-default-context-lines
指定。在
*Occur*
缓冲区中,您可以单击每个条目,或在此处移动点并键入RET
,以访问已搜索的缓冲区中的相应位置。o
和C-o
在另一个窗口中显示匹配项;C-o
不会选择它。或者,您可以使用C-x `
(next-error
)命令逐个访问事件(请参阅编译模式)。在
e
缓冲区中键入*Occur*
切换到Occur Edit模式,其中对条目所做的编辑也应用于原始缓冲区中的文本。输入C-c C-c
返回Occur模式。命令
M-x list-matching-lines
是M-x occur
的同义词。
答案 1 :(得分:5)
除M-x occurr
外,还要检查M-x grep。这可以同时在多个文件中使用。
答案 2 :(得分:4)
我通常的工作流程不是获取列表并选择(不知道如何操作),而是使用增量搜索:
C-s <search target>
获得该点之后的第一场比赛。如果您不喜欢,另一个C-s
会获得下一个C-s
。继续,直到你感到高兴(你需要一个额外的isearch-forward
从缓冲区和缓冲区包围)。足够新的emacsen还可以突出显示所有可见的匹配。
如TörökGábor的评论所述,这是{{1}}的典型键绑定。如果绑定不同,则需要修改规定的程序。