我使用M-.
跳转到类/函数的定义。有时候有多个具有相同标记的类,所以我需要使用C-u M-.
来跳转到多个文件,因此需要多个缓冲区。现在我的问题是,如何快速回到原始缓冲区?我知道C-x b
,但你需要输入缓冲区名称,或者它只是默认情况下给你访问的最后一个缓冲区,无论如何还要进一步?例如,转到最后一个缓冲区的前一个缓冲区?
答案 0 :(得分:2)
我认为M-.
默认调用find-tag
。您应该可以使用M-*
(pop-tag-mark
)返回位置堆栈。
来自C-h f find-tag
:
表示调用此命令时的点的标记被推送 在一个戒指上,可以弹回
M-*
。与此对比 指挥所留下的痕迹。
答案 1 :(得分:1)
Icicles multi-command icicle-find-tag
,绑定到 Icicle 模式中的 M-.
,结合了所有的香草Emacs命令M-.
(find-tag
),M-,
(tags-loop-continue
),tags-apropos
和list-tags
可以执行。它做得更多。
您可以完成任何标记,在匹配其他模式的标记子集中循环(以不同顺序),依此类推,在单个命令调用中访问多个标记。您可以按任意顺序选择要访问的标签---您无需按顺序访问每个标签。
您首先输入(使用RET
)正则表达式,您感兴趣的所有标签必须匹配(它可能是空的,以获取所有标签)。
之后,您可以键入标签的子集和/或其源文件必须匹配的模式。
也就是说,默认情况下,您可以完成由标记本身及其源文件名组成的multi-completion个候选项。
您可以使用C-mouse-2
中的*Completions*
选择要访问的候选人,也可以使用down
和up
在C-RET
之间循环,然后使用M-*
拜访。
您可以使用 icicle-pop-tag-mark
(C-g
)返回原始位置。您也可以使用M-.
完成{{1}}调用来返回。
更多信息here。
答案 2 :(得分:0)
我使用winner-mode
(以及其他类似情况)。
将(winner-mode 1)
添加到您的init文件中,然后当您希望返回到跳转到标记之前所处的窗口配置时,只需键入:
C-c < left> 致电winner-undo
(根据需要重复多次)
如果您访问过另一个缓冲区中的多个标记,这将使您在一个步骤中返回到原始缓冲区(或任何速率的前一个缓冲区),而不是逐个退回单个标记。 / p>
如果标签带您通过多个缓冲区,那么您需要为每个缓冲区键入 Cc &lt; left&gt; 一次(或 Cc < / kbd> &lt; left&gt; Cx z z z ...如果你走了很长一段路:)