emacs:是否有语义跳转到声明(使用semantic.el)?

时间:2010-05-07 16:24:23

标签: c emacs

假设我正在编辑包含C代码的缓冲区。

我已使用semantic-load-enable-code-helpers开始semantic

我有点放在一个函数的名称上。如果我然后调用senator-jump,我可以跳转到该模块中首次声明fn的位置。如果该模块中存在extern声明,那么它将转到该extern语句。有时?但有时它不起作用。

还有semantic-ia-fast-jump,它也会跳转到第一个声明。我不确定这个fn与senator-jump的区别。但是,对于本地缓冲区中定义的函数,这个实际上始终有效。

如果我想跳转到的功能怎么样呢?如果该定义存在于一个单独的模块中,是否可以使用参数来跳转到fn的定义? EDE不应该做这样的事吗?

感谢。

2 个答案:

答案 0 :(得分:5)

查看语义-aa中定义的语义快速跳转函数。对于C& C ++使用GNU Global的gtags生成数据库也是个好主意 - CEDET支持它。

P.S。我刚刚检查过 - 它从我的源码跳转到/ usr / include /....

中的std :: string声明

答案 1 :(得分:1)

我没有使用参议员,但是没有etags为你工作?我创建了一个所有.c的标签表。和.h文件使用

find . -name \*.c -o -name \*.h | xargs etags

然后使用find-tag(默认绑定到 M - )并跳转到相应的定义。 pop-tag-mark(默认绑定到 M - * )可用于返回您的来源。

它适合我,但我主要是在浏览大型项目代码库时使用它而不是编辑C.