2011-02-09 77 views
10

我在做Emacs的C开发。如果我有一个打开多个函数的源文件,并且“标记”处于函数调用,例如int n = get_number(arg);有没有什么办法可以“跳转到”该函数的实现?例如到int get_number(int *arg) { ... }如何在Emacs中进行C开发时跳转到功能?

我在Eclipse中完成了一些Java开发,并且缺少了这个功能,因为我不习惯Emacs,但我想学习。

+0

什么是您的操作系统? – 2011-02-09 14:31:55

+0

@ ring0:这是Mac OS X. – Jonas 2011-02-09 15:34:48

回答

10

您必须创建一个标签文件。
在Unix下,您有etags程序,该程序能够理解C,C++,Java ...的语法,并创建Emacs可以使用的tag文件。

而是old page(2004)提供了更多信息。

跳转到功能使用M-。 (这是Meta-Period)并键入函数的名称。如果您只需按回车键 Emacs将跳转到与光标所在的单词 相匹配的函数声明。

+0

不,它不是跳转到声明,而是跳到实现。 – 2014-06-22 16:18:46

3

有几个“标签”系统允许(有一个与emacs捆绑在一起,有GNU全局,没有与emacs捆绑在一起,但与它集成并具有一些优势)。与Eclipse相比,您需要构建标签文件。

然后是语义/ EDE,它现在与emacs捆绑在一起,它应该提供一个解决方案,而不需要明确建立一个数据库。我最近没有尝试过使用它。当我这样做,它有性能问题,我发现设置是痛苦的。 (这可能是由于我正在从事一项大型工作 - 几十万条线 - 老一些 - 有些事情可以追溯到80年代中期 - 这个项目没有重组它的可能性)。

+0

哇,那应该是Emacs的地方.. 我喜欢Emacs让我们编码的方式。非常有趣...:) – swdev 2011-03-03 06:24:21

0

我真的很喜欢cscope,但etags可能也适用。

3

我认为语义模式应该会给你同样的结果。尽管我还没有尝试跳转到另一个文件,但在一个文件中它非常出色。转到变量,发出击键C-c,j,它将跳转到变量的定义。回到上一行使用C-uC-空间。要显示参考符号,使用按键C-C,克

这真的帮助了我。 我还没有试过它跳转到另一个文件,因为我当前的项目是一个修改的Java程序,我们正在使用预处理器(一个非标准的java进程)。所以我认为这是问题所在。

任何成功与语义模式???

谢谢