2013-02-24 199 views
1

对于标题感到抱歉,很难在一个班轮中解释这个问题。但这里是我说的用例:让emacs grep缓冲区使用特定的emacs缓冲区来显示命中

我有4个缓冲区在emacs中打开,每个显示一些文件和一些位置。然后,我执行grep-find,并将grep输出放入其中一个缓冲区中。然后我点击grep缓冲区中的点击,并且每点击一次,emacs使用不同的缓冲区来显示点击。如果我打开了4个以上的缓冲区,emacs会确保按顺序使用所有这些缓冲区来显示命中。这对我来说确实没有用处,因为所有这些缓冲区都包含了我的源文件,并且我想保留这些缓冲区。

如果在grep输出中单击命中将仅在特定缓冲区中打开,例如,在grep缓冲区之后的下一个缓冲区,将会更有用。这样,我可以安排在grep缓冲区可用之后保留下一个缓冲区,并在那里显示所有grep结果。所有其他缓冲区将继续显示我的源文件在我想要的位置...

那么,这是可以用一些ELISP魔术,或者我必须改变我与Emacs的工作方式?

+0

您似乎对缓冲区和窗口感到困惑。 'grep-find'的输出到'* grep *'缓冲区。我确定你对显示这个缓冲区的窗口感到困惑。 – pmr 2013-02-24 22:08:15

+0

感谢您的回答,但我对grep-find的输出结果并不感到困惑。我的问题也与缓冲区/窗口区别无关。我只是想让emacs在同一个缓冲区(或窗口,如果你会...)显示所有grep命中。 – 2013-02-25 10:07:44

回答

2

您可能喜欢通过点击在一个单一的窗口中使用next-errorprevious-error(绑定到M-克M-NM-克M-P-)循环。

+0

这正是我一直在寻找的。之前,我只是移动命中,点击它们或按下C-m,它将每个命中分配给所有现有的打开的窗口。 – 2013-02-25 10:03:39