GNU emacs相当于func-menu

时间:2012-01-20 15:24:20

标签: emacs gnu xemacs

是否有相当于GNU emacs的func-menu?当我访问xemacs时,我使用了func-menu,我更喜欢它的行为,而不是speedbar或sr-speedbar。具体做法是:

  • 我喜欢只显示当前文件的功能。

  • 功能列表可以从当前帧中弹出,而不是我可能已经掩盖的单独窗口。

  • 当前功能名称显示在模式行中。

是否有一个GNU emacs包,它更接近于func-menu?

3 个答案:

答案 0 :(得分:7)

imenu将是GNU Emacs中的类似功能。

参见 C-h f imenu-add-menubar-index RET
您可以在模式挂钩中调用具有imenu支持的模式。

自然支持elisp,因此需要快速演示:

  • M-x find-library RET imenu RET
  • M-x imenu-add-menubar-index RET

然后在菜单栏中看到新的“索引”项目,并在 C-< mouse3>

上看到

当然还有一个键盘界面,只需调用 Mx imenu RET (完成TAB),但我强烈建议添加{{可以在EmacsWiki *找到的集成 - 我发现它通常比使用鼠标更快。

有关详细信息,请参阅 C-h i g ido RET

有关配置,请参阅 M-x (elisp) Imenu RET customize-group RET

(*)除了许多其他增强功能的方法之外,即使你不想使用imenu,你也应该在看完之后阅读那个Wiki页面。实际的基本版本。

答案 1 :(得分:3)

Is this the XEmacs func-menu mode you're talking about?它为您提供当前文件中的函数列表。

如果是这样,那么你可以使用Emacs开发工具集合CEDET(特别是语义代码解析器)和Emacs代码浏览器ECB来复制GNU Emacs中的功能。

  • The ECB Methods window显示所选源代码缓冲区中的所有符号。它是Emacs意义上的一个单独窗口 - 也就是说,一个显示单个缓冲区的编辑区域,其中几个可以位于单个窗口管理器窗口中。它不是Emacs框架,因此不会被掩盖。
  • Semantic's stickyfunc-mode可以在源代码缓冲区顶部的行中显示当前函数。它使用特定于GNU Emacs的header line功能。这与在模式行中显示函数名称并不完全相同,但足够接近。

请注意,ECB需要CEDET,如果没有XEmacs的软件包管理器,两者都很难安装。

答案 2 :(得分:0)

我不确定,但我认为“跳转到缓冲区中的函数”被称为fume-mode。如果是这样,搜索模拟烟雾模式可能会帮助您了解您正在寻找的内容。

以下摘自XEmacs手册,其中提到了烟雾模式:

  

“41。跳转到缓冲区中的函数。

     

假设您有一个包含许多功能的文件。好吧,这个   package可以轻松跳转到任何这些功能。的名字   当前缓冲区中的函数会自动放入   菜单栏菜单,您选择其中一个功能名称和点   转移到那个功能。标记被推到标记环上,所以   你可以轻松回到原来的位置。或者,您可以使用   通过提供的迷你缓冲区输入所需功能的名称   完成阅读输入。另外,之前的功能名称   点可选择显示在模式行中。

支持以下模式:

  

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)"