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

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

  •  18
  • Bill  · 技术社区  · 16 年前

    我想快速移动指向Emacs缓冲区中的一个函数。我想运行一些函数,并得到一个提示,要求我输入函数名,并为当前缓冲区中定义的每个函数提供完成。

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

    8 回复  |  直到 12 年前
        1
  •  35
  •   Noufal Ibrahim    12 年前

    只是为了跳过当前文件中的函数?使用 imenu . 这是迄今为止列出的所有备选方案中最简单、最轻的一种,可能足以满足您的需求。它也内置于Emacs中,安装麻烦最小。它具有图形和文本界面。任何东西 额外的 你最好还是使用这里提出的另一个很好的建议。

        2
  •  2
  •   scottfrazer    16 年前

    你可以使用 etags-select 从多个匹配标记中选择。但是你问的答案是 imenu .

        3
  •  1
  •   Justin Smith    16 年前

    speedbar是标准配置,它为当前目录中的每个文件提供了一个可折叠的菜单,默认情况下,鼠标中键单击一个函数定义条目就会跳到该def。使用emacs23时,这被更改为更普通的左键单击。

        4
  •  0
  •   sjagr    16 年前

    冰柱可能更接近你要找的东西:

    http://www.emacswiki.org/emacs/Icicles_-_Tags_Enhancements

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

        5
  •  0
  •   Anycorn    16 年前

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

    当他安装好后,你可以使用 semantic-complete-jump .按几次tab键,也会显示符号定义。

        6
  •  0
  •   offby1    16 年前

    如果m-出现错误的方法,您可以键入c-u m-。找到下一个同名的。

        7
  •  0
  •   chunhui    16 年前

    全球GTAGS非常好

        8
  •  0
  •   Drew    15 年前

    要在当前文件或您选择的一组文件中导航,请执行以下操作: 不 需要标签文件。你可以使用 伊梅努 . 但最好用 Icicles imenu 命令。

    为什么?因为他们让你使用 完成 . 子字符串、regexp、前缀或模糊完成。结合简单的模式来匹配,或者减去它们。

    命令 icicle-imenu 被束缚在 冰柱 模式到 C-C= . 但是你也可以查到 命令 或者只是一个 非命令 功能(非交互),使用命令 icicle-imenu-command 或 icicle-imenu-non-interactive-function .

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