具有多个击键的Emacs键绑定

具有多个击键的Emacs键绑定,emacs,key-bindings,Emacs,Key Bindings,我想在emacs中用两次按键打开我最喜欢的五个(大约)文件。我认为F9-a代表文件a,F9-b代表文件b,等等 我在F5有组织模式的日程安排(而不是“默认”的C-a),所以我点击F5-a查看今天的日程安排。我希望我的组织文件、联系人文件等都有相同的内容 有没有一种方法(或者更确切地说,是什么方法)让F9打开一个子菜单,其中包含我最喜欢的文件列表,可以通过另一次击键进行选择?此设置满足您的要求,至少在键图方面是这样的。它实际上不会弹出菜单 (setq my-file-menu-keymap

我想在emacs中用两次按键打开我最喜欢的五个(大约)文件。我认为F9-a代表文件a,F9-b代表文件b,等等

我在F5有组织模式的日程安排(而不是“默认”的C-a),所以我点击F5-a查看今天的日程安排。我希望我的组织文件、联系人文件等都有相同的内容


有没有一种方法(或者更确切地说,是什么方法)让F9打开一个子菜单,其中包含我最喜欢的文件列表,可以通过另一次击键进行选择?

此设置满足您的要求,至少在键图方面是这样的。它实际上不会弹出菜单

(setq my-file-menu-keymap
      (let ((keymap (make-sparse-keymap)))
        (dolist (pair '(("a" . "~/.emacs")
                        ("b" . "~/.phones")
                        ("c" . "~/org/daily.org")))
          (define-key keymap (car pair)
            `(lambda () (interactive) (find-file ,(cdr pair)))))
        keymap))

(global-set-key (kbd "<f9>") my-file-menu-keymap)
(设置我的文件菜单键映射
(let((键映射(生成稀疏键映射)))
(dolist(成对)(“a”。/.emacs”)
(“b”。“~/.电话”)
(“c”。“~/org/daily.org”))
(定义钥匙图(车对)
`(lambda()(交互式)(查找文件,(cdr对‘‘‘‘‘‘)’)
钥匙图)
(全局设置键(kbd“”)我的文件菜单键映射)

我使用一个键来循环浏览我最喜欢的文件(适用于少量文件,我不关心随机访问)。您可以在一个不同的SO问题中找到相应的代码(请参阅)。

您可以使用一个软件包获得更好的结果,该软件包允许您执行以下操作。与将文件名显式绑定到键相比,这种方法的静态性要小得多,并且使用这种方法可以轻松地访问最近使用的文件,而不仅仅是5个

这确实有效,但只有在我将第一行放在第二个更大的命令下面之后。否则,找不到变量my file menu keymap。谢谢你的代码!