我喜欢只显示当前文件的函数。
可以从当前框架弹出函数列表,而不是一个可能被覆盖的单独窗口。
当前函数名称显示在模式行中。
imenu
是GNU Emacs中类似的功能。
查看C-hfimenu-add-menubar-index
RET。您可以在支持imenu
的模式挂钩中调用它。
自然支持elisp,因此进行快速演示:
find-library
RETimenu
RETimenu-add-menubar-index
RET然后在菜单栏上看到新的“索引”项目,以及在C-<mouse3>上也有。
当然,也有一个键盘界面,只需调用M-ximenu
RET(使用TAB完成),但我强烈建议添加EmacsWiki*中可以找到的ido
集成--我发现这通常比使用鼠标更快的接口。
有关更多详细信息,请参见C-hig(elisp) Imenu
RET
有关配置,请参见M-xcustomize-group
RETimenu
RET
(*) 还有许多其他增强功能的方法,因此即使您不想使用ido
,在查看基本版本后,您也应该阅读该Wiki页面。
您说的是XEmacs中的func-menu
模式吗?它会列出当前文件中所有的函数。
如果是这样,那么你可以使用GNU Emacs的开发工具集合CEDET(特别是Semantic代码解析器)和Emacs代码浏览器ECB来复制大部分功能。
请注意,ECB需要CEDET,并且安装这两个工具通常比使用XEmacs的软件包管理器更加棘手。
我不确定,但我认为“跳转到缓冲区内的函数”被称为fume-mode。如果是这样,搜索fume-mode的类比可能会帮助您找到您要查找的内容。
以下是XEmacs手册中提到fume-mode的摘录:
“41.跳转到缓冲区内的函数。
假设您有一个包含许多函数的文件。好吧,这个软件包使得轻松跳转到任何这些函数之一。当前缓冲区中函数的名称自动放入菜单栏菜单中,您选择一个函数名称,光标就会移动到该函数。标记被推送到标记环中,因此您可以轻松返回到原来的位置。或者,您可以通过迷你缓冲区输入所需函数的名称,该缓冲区提供完成读取输入。此外,可选地在模型行中显示点前的函数名称。
支持以下模式:
Ada、Assembly、BibTex、C++、C、Dired、Ehdm、ELisp、FORTRAN、Ksh、Latex、Lelisp、Makefile、Maple、Modula2、Modula3、Outline、Objective-C、Pascal、Perl、Postscript、Prolog、PVS、Python、SGML、Scheme、Tcl、Verilog、Manual、Ruby、JavaScript。(add-hook 'find-file-hooks 'fume-setup-buffer)
(add-hook 'Manual-mode-hook 'turn-on-fume-mode)"
which-function-mode
。 - Ivan Andrus