2009-05-25 50 views

回答

16

M-x occur

the manual

M-x occur

提示一个正则表达式,并显示示出在包含匹配它的缓冲器中的每个线路的列表。匹配的文本使用match表面突出显示。要将搜索限制在缓冲区的一部分,缩小到该部分(请参阅缩小)。数值参数n指定在每个匹配行之前和之后显示上下文行。上下文行的默认数量由变量list-matching-lines-default-context-lines指定。

*Occur*缓冲区中,您可以单击每个条目,或者在那里移动点并键入RET,以访问搜索到的缓冲区中的相应位置。 oC-o在另一个窗口中显示匹配; C-o不选择它。或者,您可以使用C-x `next-error)命令逐个访问事件(请参阅编译模式)。

*Occur*缓冲区中键入e切换到出现编辑模式,其中对入口进行的编辑也会应用到始发缓冲区中的文本。键入C-c C-c返回到Occur模式。

该命令M-x list-matching-linesM-x occur的同义词。

+0

谢谢你的回答! – 2009-05-25 23:31:49

+0

没问题...我是一个vi的人,有时必须使用emacs ... – LB40 2009-05-25 23:58:10

4

我平时的工作流程是不是得到一个清单,并选择(不知道如何做到这一点),但使用渐进式搜索:

C-s <search target> 

点后得到的拳头比赛。如果你不喜欢它,另一个C-s得到下一个。继续下去,直到你开心(你需要额外的C-s才能从缓冲区中绕回)。足够新的emacsen还可以突出显示所有可见的匹配项。

正如TörökGábor在评论中指出的那样,这是isearch-forward的典型键绑定。如果您的绑定不同,您需要修改规定的程序。

+3

`isearch-forward`(即`Cs`)也允许你在给定的搜索短语后键入`Co`,然后它运行'发生'什么LB建议。这样你就可以立即使用他们的力量。 – 2009-05-26 08:21:58

5

除了M-x occurr还检查M-X grep。这可以在多个文件中同时运行。