Emacs 如何在变量列表中创建键映射

Emacs 如何在变量列表中创建键映射,emacs,elisp,Emacs,Elisp,请任何人给我一些帮助,在下面的示例中创建稀疏键映射,并在新键映射中创建至少一个示例条目 我想创建子菜单,以更好地组织和添加额外的条目到这些子菜单。这个例子借鉴了menu-bar.el中的函数menu-bar update buffers,我对该函数进行了修改,以使用右键单击弹出式上下文菜单 (setq lawlist-context-menu-command-entries (list '(command-separator "--") (list 'next-b

请任何人给我一些帮助,在下面的示例中创建稀疏键映射,并在新键映射中创建至少一个示例条目

我想创建子菜单,以更好地组织和添加额外的条目到这些子菜单。这个例子借鉴了menu-bar.el中的函数menu-bar update buffers,我对该函数进行了修改,以使用右键单击弹出式上下文菜单

(setq lawlist-context-menu-command-entries
  (list
    '(command-separator "--")
    (list
      'next-buffer
      'menu-item
      "Next Buffer"
      'next-buffer
      :help "Switch to the \"next\" buffer in a cyclic order")
    (list
      'previous-buffer
      'menu-item
      "Previous Buffer"
      'previous-buffer
      :help "Switch to the \"previous\" buffer in a cyclic order")
    (list
      'select-named-buffer
      'menu-item
      "Select Named Buffer..."
      'switch-to-buffer
      :help "Prompt for a buffer name, and select that buffer in the current window")
    (list
      'list-all-buffers
      'menu-item
      "List All Buffers"
      'list-buffers
      :help "Pop up a window listing all Emacs buffers") ))

编辑:问题已解决-我修改了创建Frames菜单文件夹的示例,就像从menu-bar.el在菜单栏更新缓冲区中所做的那样。请参阅下面的答案。

我修改了创建框架菜单文件夹的示例,就像在menu-bar.el中的菜单栏更新缓冲区中所做的那样。问题解决了。而不是使用make sparse keymap,而是只使用keymap

(setq lawlist-context-menu-command-entries `(
  (test-one-separator "--")
    (test-one-folder-heading menu-item "TEST" ,(cons 'keymap (list
      (list
        'next-buffer
        'menu-item
        "Next Buffer"
        'next-buffer
        :help "Switch to the \"next\" buffer in a cyclic order")
      (list
        'previous-buffer
        'menu-item
        "Previous Buffer"
        'previous-buffer
        :help "Switch to the \"previous\" buffer in a cyclic order")
     '(test-two-separator "--")
      (list
        'select-named-buffer
        'menu-item
        "Select Named Buffer..."
        'switch-to-buffer
        :help "Prompt for a buffer name, and select that buffer in the current window")
      (list
        'list-all-buffers
        'menu-item
        "List All Buffers"
        'list-buffers
        :help "Pop up a window listing all Emacs buffers"))))))

OneKey at是否有助于实现此目的?也许您可以将您的需求与OneKey集成。@aartist感谢您的建议和链接-非常感谢。我的目标是创建一个自定义的右键单击上下文菜单,该菜单显示所有打开的缓冲区和帧(如果存在),并包含一些指向组织到子菜单中的有用函数的方便链接。我之前已经合并了主模式菜单和YASnippet可用代码段菜单。上下文菜单现在可以工作了——如果有人感兴趣,这里有一个Github上的链接:buffer菜单列表包括多达20个和隐藏的菜单。