Emacs:显示源文件中的子程序/函数/类的列表

Emacs:显示源文件中的子程序/函数/类的列表

多年来,我一直在使用一款鲜为人知的编辑器“FTE”(或 eFTE);它有一个很好的实用程序,可以显示源文本文件(C、C++、Fortran 等)中的子例程/函数/类(或任何此类内容 - 取决于您在其配置文件中定义的正则表达式)的列表。此功能允许我在源文件中快速从一个点跳转到另一个点。也许 FTE 中的原始快捷键是^I(Control+I)。emacs 有类似的功能吗?Emacs 比 FTE 先进得多,如果没有人开发这样的功能,我会感到惊讶。

谢谢,Wirawan

答案1

尝试- 这会在新缓冲区中列出当前缓冲区中M-x occur RET exp RET出现的所有情况。exp

答案2

当然,大多数人会告诉你,只要使用现代的集成开发环境但他们不明白的力量emacs。就我个人而言,我使用欧洲央行这让我emacs看起来像这样:

在此处输入图片描述

左侧中间的窗口是当前源文件的函数列表。单击名称可移动光标至该函数的定义。

要安装,请按照 ECB 网站上的说明安装 ECB,然后将此行添加到您的~/.emacs(相应地更改位置):

(add-to-list 'load-path
             "~/.emacs-lisp/ecb/")

另一个选择是西班牙教育与培训委员会但我没有用过。

答案3

使用伊梅努

  1. M-X imenu
  2. tabAll.Methods
  3. tab查看所有方法

答案4

Emacs 有几种方法可以获得此功能。

更轻量级的方法是标签,经过适当的定制,它可以满足大多数用途。一旦您构建了一个标签文件(在 shell 中完成,例如通过cd /path/to/project; ctags -e -R .)并通过 选择了它M-x visit-tags-table RET /path/to/TAGS RET,您就可以使用M-.函数调用来跳转到函数定义,M-x tags-search通过标签表中描述的文件进行 grep 等。请参阅链接页面,了解可用工具的相当详尽的描述。

更重量级的方法是语义,一个完全用 Emacs Lisp 实现的词法分析器/解析器组合。虽然我对 Semantic 的熟悉程度不如对 tags 的熟悉程度,但我的印象是 Semantic 需要更重的初始设置负担,以换取更普遍有用的结果。除了链接的手册页外,(Emacs Wiki 文章)[http://www.emacswiki.org/emacs/SemanticBovinator]可能会有额外的帮助。

相关内容