多年来,我一直在使用一款鲜为人知的编辑器“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
使用伊梅努:
M-X imenu
tab
,All.Methods
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]可能会有额外的帮助。