Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Emacs中,如何在当前文件中的函数之间跳转?_Emacs - Fatal编程技术网

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

在Emacs中,如何在当前文件中的函数之间跳转?,emacs,Emacs,我想快速将点移动到Emacs缓冲区中的函数。我想运行一些函数并得到一个提示,询问函数名,并为当前缓冲区中定义的每个函数提供完成 我通常使用etag进行导航,但有时我会寻找一个在多个文件中被重写的框架方法。在这些情况下,我可以找到我需要的文件,但我想快速跳转到那里的函数。TextMate中有一个类似的功能,您可以从编辑器右下角的列表中选择定义。冰柱可能更接近您要查找的内容: 它是对etag的一个增强,包括(除其他外)带有标记的文件名,这样您就可以知道它是否是您要查找的文件名 试试CEDET。设置

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


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

冰柱可能更接近您要查找的内容:


它是对etag的一个增强,包括(除其他外)带有标记的文件名,这样您就可以知道它是否是您要查找的文件名

试试CEDET。设置第一个有点困难,但这里有一个很好的教程:


当他安装好后,您可以使用
语义完全跳转
。按tab键几次,也会显示符号定义

speedbar是标准配置,为当前目录中的每个文件提供了一个可折叠菜单,默认情况下,在函数定义条目上单击鼠标中键可跳转到该定义。对于emacs23,这被更改为更正常的左键单击。

如果是M-。出现错误的方法,您可以键入C-u M-。查找下一个同名的函数。

只是在当前文件中的函数间跳转?使用。它是迄今为止列出的所有备选方案中最简单、最轻的,可能足以满足您的需求。它还内置于Emacs中,设置麻烦最小。它具有图形和文本界面。如果有任何额外的建议,您最好使用此处提出的其他优秀建议之一。

您可以使用从多个匹配标记中进行选择。但是您所问的问题的答案是。

全局gtags非常好

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

为什么??因为他们允许你使用补全。子字符串、regexp、前缀或模糊补全。组合简单的模式进行匹配,或减去它们

命令
icicle imenu
在icicle模式下绑定到C-C=。但是您也可以使用command
icicle imenu command
icicle imenu非交互功能查找命令或非命令功能(非交互)


这些命令是多命令,这意味着它们实际上是浏览器:您可以使用键C-RET或C-mouse-2(直接跳转)和C-down(循环)在函数定义之间切换。点击RET或单击鼠标2在最终目的地定居。

Semantic也与任何东西都有很好的集成,并且
Anything-c-source-Semantic
source提供了一个由Semantic找到的所有东西的列表。支持哪些语言?C-family和Elisp,还有什么?我认为大多数内置模式在imenu上都可以正常工作。向模式中添加imenu支持也很容易。它适用于Python和Cperl模式。我用过。