2014-01-15 103 views
2

我使用M-.跳转到类/函数的定义。有时候会有多个具有相同标记的类,所以我需要使用C-u M-.来跳转到多个文件,因此需要多个缓冲区。现在我的问题是,如何快速回到原始缓冲区?我知道C-x b,但你需要输入缓冲区名称,或者它只是默认给你你访问的最后一个缓冲区,还有没有更进一步?例如,转到最后一个缓冲区的前一个缓冲区?在追逐Emacs中的标签后切换到原始缓冲区

回答

2

我相信M-.默认调用find-tag。您应该可以使用M-*pop-tag-mark)备份一堆地点。

C-h f find-tag

表示当该命令被调用被推 到一环,并且可以被赶回到与M-*点的标记。将该命令与标记去掉的 对比。

1

Iciclesmulti-commandicicle-find-tag,在冰柱模式势必M-.,结合了所有的香草什么Emacs命令M-.find-tagM-,tags-loop-continue),tags-aproposlist-tags做。它还有更多。

您可以针对任何标签,在与附加模式匹配的标签子集中循环(以不同的顺序),等等,在单个命令调用中访问多个标签。您可以按任意顺序选择您想要访问的标签---您无需按顺序访问每个标签。

  1. 您第一次进入(使用RET)一个正则表达式,你有兴趣必须匹配所有标签(也可能是空洞,让所有标签)。

  2. 之后,您可以键入一个模式,标签和/或它们的源文件的子集必须匹配。

    也就是说,默认情况下,您可以完成针对multi-completion由标签本身及其源文件名组成的候选项。

  3. 您可以选择使用考生在C-mouse-2*Completions*使用downup,然后使用C-RET访问他们的名字中骑自行车参观。

  4. 您可以使用M-*icicle-pop-tag-mark)返回原来的位置。您也可以通过使用C-g完成M-.调用返回。

更多信息here

0

我使用winner-mode为此(和其他类似的情况)。

添加(winner-mode 1)到您的init文件,然后当你想返回你跳转到标记之前分别在窗口配置,你只需要输入:

抄送<离开>调用winner-undo(根据需要重复多次)

如果您访问了另一个缓冲区中的多个标记,这将使您在一个步骤中回到原始缓冲区(或以前的缓冲区,无论如何),而不是步进通过进入个别标签一个接一个。

如果标签已经向您介绍多个缓冲区,那么你就需要输入抄送<离开>一次为每个缓冲区(或抄送<离开>CXžzz ...如果你走了很长的弯路:)