在Emacs中,如何在当前文件中的函数之间跳转?

时间:2010-01-25 04:34:10

标签: emacs

我想快速移动指向我的Emacs缓冲区中的函数。我想运行一些函数并得到一个提示,询问我的函数名称,并为当前缓冲区中定义的每个函数提供完成。

我通常使用etags来导航,但有时候我正在寻找一个在多个文件中被覆盖的框架方法。在这些情况下,我可以找到我需要的文件但是我想快速跳转到那里的功能。 TextMate中有一个类似的功能,您可以从编辑器右下角的列表中选择一个定义。

8 个答案:

答案 0 :(得分:35)

只是跳转当前文件中的函数?使用imenu。它是目前为止列出的所有替代品中最简单,最轻的,可能足以满足您的需求。它也内置于Emacs中,并且具有最小的设置麻烦。它具有图形和文本界面。任何额外,你最好使用这里提出的其他一些优秀建议。

答案 1 :(得分:2)

您可以使用etags-select从多个匹配的代码中进行选择。但你问的答案是imenu

答案 2 :(得分:1)

speedbar是标准配置,为您提供当前目录中每个文件的可折叠菜单,默认情况下,中间单击某个功能定义的条目会跳转到该def。使用emacs23,这被改为更正常的leftclick。

答案 3 :(得分:0)

冰柱可能更接近你想要的东西:

http://www.emacswiki.org/emacs/Icicles_-_Tags_Enhancements

这是对etags的增强,包括(除其他外)带有标记的文件名,因此您可以判断它是否是您要查找的文件名。

答案 4 :(得分:0)

尝试CEDET。设置第一个有点困难,但这是一个很好的教程:by Alex ott

安装完成后,您可以使用semantic-complete-jump。按Tab键几次,它也会带来符号定义。

答案 5 :(得分:0)

如果M-。提出错误的方法,你可以输入C-u M-。找到下一个同名的。

答案 6 :(得分:0)

全球gtags非常好

答案 7 :(得分:0)

要在当前文件或您选择的一组文件中导航,您需要TAGS文件。您可以使用 Imenu 。但最好使用Icicles imenu命令。

为什么呢?因为它们允许您使用完成。子串,正则表达式,前缀或模糊完成。组合简单模式以匹配或减去它们。

命令icicle-imenu Icicle 模式下绑定到 C-c = 。但您也可以使用命令icicle-imenu-commandicicle-imenu-non-interactive-function查找命令或仅查找非命令功能(非交互式)。< / p>

这些命令是多命令,这意味着它们实际上是浏览器:您可以使用键 C-RET C-mouse-在函数定义中跳闸2 (直接跳转)和 C-down (循环)。点击 RET 或点击 mouse-2 在最终目的地安顿下来。