我是一名长期邪恶模式 Spacemacs 用户,但现在想推出我自己的配置来复制我最喜欢的 Spacemacs 部分。我在主要模式的按键绑定方面遇到了一些问题。
我使用的是 Emacs 29。到目前为止我还不需要 generic.el。遵循此建议来使用较新的 Emacs 29 键绑定 - 这里。我已经成功使用
keymap-set
和 which-key-add-keymap-based-replacements
。这是我配置的文件键绑定的部分配置,它按预期工作:
(defvar-keymap my-files-keymap
:doc "Key map for file functions"
"f" #'find-file
"s" #'save-buffer)
;;Add new key map to the leader
(keymap-set my-leader-map "f" my-files-keymap)
;;Add labels to the Files keymaps
(which-key-add-keymap-based-replacements my-files-keymap
"f" "find"
"s" "save")
;;Add Files to the Leader keymaps
(which-key-add-keymap-based-replacements my-leader-map
"f" "Files")
但我不明白的是如何为主要模式添加键绑定。例如,在组织模式下,我希望 SPC, m 显示我想要的组织模式的主要模式键绑定。但是,当处于不同的主要模式(例如 Clojure 模式)时,我希望 SPC, m 仅显示与 Clojure 相关的键绑定。
有人可以展示一个使用新的 Emacs 29 函数执行此操作的示例,或者链接到执行此操作的示例吗?
我认为最接近的是:
(describe-keymap (current-local-map))
本地键盘映射不一定是主要模式键盘映射;但实际上,情况几乎总是如此。
但通常您会使用
describe-mode
(C-h m
) 来了解这些内容以及更多内容。