Emacs 缓冲区菜单

Emacs 缓冲区菜单,emacs,menu,elisp,Emacs,Menu,Elisp,每次在Emacs中按CTRL+左键单击时,我都会得到一个所有打开缓冲区的列表。 如何更改默认输出以弹出一个自己定制的菜单,我想到的是: Buffer Menu ----------- dot.C > ex1.c dot.java ex2.c dot.lisp ex3.c dot.? ... ----------- 例如,如上所示,每个.c文件都将存储在dot.c条目中。您是说您有一个菜单用于.c文件,另一个菜单用于.h文件,即使它们都使用相同的主模

每次在Emacs中按CTRL+左键单击时,我都会得到一个所有打开缓冲区的列表。 如何更改默认输出以弹出一个自己定制的菜单,我想到的是:

Buffer Menu  
-----------
dot.C     >  ex1.c  
dot.java     ex2.c
dot.lisp     ex3.c
dot.?  
... 
-----------

例如,如上所示,每个.c文件都将存储在dot.c条目中。

您是说您有一个菜单用于
.c
文件,另一个菜单用于
.h
文件,即使它们都使用相同的主模式?标准菜单根据主模式进行分类,因此我认为您需要自定义菜单代码来实现这一点

脑海中浮现的一种黑客方法是定义最小派生主模式,以便将每个模式与不同的文件扩展名关联,然后您可以使用现有的菜单来实现您的目标

如果您不是这个意思,并且按主模式分组是可以的,那么当前系统应该已经提供了一个解决方案

在任何一种情况下,以下内容都可能有用:

  • M-x
    apropos变量
    RET
    鼠标缓冲区菜单
    RET