我在Emacs中进行C开发。如果我打开了具有多个功能的源文件,并且“标记”处于函数调用,例如int n = get_number(arg);
有什么方法可以“跳转”到该函数的实现?例如到int get_number(int *arg) { ... }
我在Eclipse中做了一些Java开发并且缺少这个功能,因为我不习惯Emacs,但我想学习。
答案 0 :(得分:10)
您必须创建标记文件
在Unix下,您拥有etags
程序,该程序了解C
,C++
,Java
的语法...并创建一个tag
文件,该文件可以是由Emacs使用。
这相当old page(2004)提供了更多信息。
要跳转到某个功能,请使用M-。 (那是Meta-Period)并输入函数的名称。如果你 只需按Enter键Emacs将跳转到与下面的单词匹配的函数声明 光标。
答案 1 :(得分:3)
有几个“标签”系统允许(有一个捆绑了emacs,有GNU全球,没有与emacs捆绑,但与它很好地集成,并具有一些优势)。与Eclipse相比,您需要构建标记文件。
然后有语义/ EDE现在捆绑了emacs,它应该提供一个解决方案,而不需要显式地构建数据库。我最近没试过用它。当我这样做时,它有性能问题,我发现设置很痛苦。 (这可能是因为我正在努力开发一个大型的 - 几百万行 - 而且旧的 - 有些东西可以追溯到80年代中期 - 项目没有重组的可能性。)
答案 2 :(得分:3)
我认为语义模式应该会给你相同的结果。虽然我没有尝试跳转到另一个文件,但在一个文件中它非常优秀。转到变量,发出击键 C-c , j ,它会跳转到变量的定义。使用 C-u C-space 返回上一行。要显示对符号的引用,请使用击键 C-c , g
这对我很有帮助。 我没有尝试过它跳转到另一个文件,因为我当前的项目是一个修改过的Java程序,我们使用预处理程序(非标准的java进程)。所以我认为这就是问题所在。
任何语义模式的成功???
感谢
答案 3 :(得分:0)
我真的很喜欢cscope,但etags可能也可以。