代码之家  ›  专栏  ›  技术社区  ›  Cheeso

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

  •  6
  • Cheeso  · 技术社区  · 14 年前

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

    我已经开始了 semantic 具有 semantic-load-enable-code-helpers .

    我在函数名上加了一个点。如果我调用 senator-jump 我可以跳到第一次声明fn的地方,在那个模块中。如果该模块中有一个extern声明,那么它将转到该extern语句。有时候?不过,有时候也不管用。

    还有 semantic-ia-fast-jump ,也跳转到第一个声明。我不知道这个fn和 跳跃参议员

    如果我想跳转到的函数是extern呢?如果fn的定义位于一个单独的模块中,是否可以使用senator跳转到该定义?埃德不应该做这样的事吗?

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Alex Ott    14 年前

    看看语义ia中定义的语义ia快速跳转函数。对于C&C++是GNU Global—CEDET生成Gmail数据库的好主意。

    另外,我刚检查过-它从我的源代码跳到了/usr/include/中std::string的声明。。。。

        2
  •  1
  •   Noufal Ibrahim    14 年前

    我没用过参议员,但etags对你有用吗?我创建了一个包含所有 .c . 和 .h 文件使用

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

    然后使用 find-tag (默认情况下绑定到 M - . )跳转到合适的定义。 pop-tag-mark (默认情况下绑定到 M - )可以用来回到你原来的地方。

    它对我来说工作得很好,但我主要是在浏览大型项目代码库时使用它,而不是在编辑C。