首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Emacs键映射值中显示键

在Emacs键映射值中显示键
EN

Stack Overflow用户
提问于 2010-08-14 03:38:22
回答 4查看 7.1K关注 0票数 36

当我查询快捷键映射的当前值时,例如使用M-: (current-local-map),它会显示以下内容:

代码语言:javascript
运行
复制
Value: 
(keymap
 (S-mouse-2 . muse-follow-name-at-mouse-other-window)
 (mouse-2 . muse-follow-name-at-mouse)
 (33554445 . muse-follow-name-at-point-other-window)
 (S-return . muse-follow-name-at-point-other-window)
 (13 . muse-follow-name-at-point)
 (return . muse-follow-name-at-point)
 keymap
 (67108924 . muse-decrease-list-item-indentation)
 (67108926 . muse-increase-list-item-indentation)
 (M-return . muse-insert-list-item)
 (33554441 . muse-previous-reference)
 (S-iso-lefttab . muse-previous-reference)
 (S-tab . muse-previous-reference)
 (S-mouse-2 . muse-follow-name-at-mouse-other-window)
 (mouse-2 . muse-follow-name-at-mouse)
 (33554445 . muse-follow-name-at-point-other-window)
 (9 . muse-next-reference)
 (tab . muse-next-reference)
 (3 keymap
    (19 . muse-search)
    (2 . muse-find-backlinks)
    (tab . muse-insert-thing)
    (9 . muse-insert-thing)
    (16 . muse-project-publish)
    (6 . muse-project-find-file)
    (61 . muse-what-changed)
    (22 . muse-browse-result)
    (27 keymap
        (20 . muse-publish-this-file))
    (33554452 . muse-publish-this-file)
    (20 . muse-project-publish-this-file)
    (12 . font-lock-mode)
    (5 . muse-edit-link-at-point)
    (1 . muse-index))
 keymap
 (27 keymap
     (9 . ispell-complete-word)))

我希望看到的不是数字,而是更有意义的东西,比如(control ?c) return。我该怎么做呢?

EN

回答 4

Stack Overflow用户

发布于 2010-08-14 05:18:45

API你知道命令API( keymaps?

  • (substitute-command-keys "\\{foo-map}") ),它通常显示当前的主要和次要模式的描述,通常与它们的foo-map.

  • If是什么内部使用的生成用户友好的描述的快捷键映射
  • 你想有一些更接近快捷键映射结构的东西,该C-h m被记录在“分类事件”中的Emacs Lisp手册。例如,

(event-modifiers 33554445) ==> (shift control)

(format "%c" (event-basic-type 33554445)) ==> "m"

票数 29
EN

Stack Overflow用户

发布于 2016-05-03 10:10:39

我只是根据Gilles的回答写了下面的内容,所以我想我应该把它贴出来。

我看到Drew的describe-keymap有一个非常相似的基础,但也涵盖了其他各种用例,所以我倾向于建议使用它作为更完整的解决方案;但是FWIW:

代码语言:javascript
运行
复制
(defun my-describe-keymap (keymap)
  "Describe a keymap using `substitute-command-keys'."
  (interactive
   (list (completing-read
          "Keymap: " (let (maps)
                       (mapatoms (lambda (sym)
                                   (and (boundp sym)
                                        (keymapp (symbol-value sym))
                                        (push sym maps))))
                       maps)
          nil t)))
  (with-output-to-temp-buffer (format "*keymap: %s*" keymap)
    (princ (format "%s\n\n" keymap))
    (princ (substitute-command-keys (format "\\{%s}" keymap)))
    (with-current-buffer standard-output ;; temp buffer
      (setq help-xref-stack-item (list #'my-describe-keymap keymap)))))
票数 8
EN

Stack Overflow用户

发布于 2019-09-17 18:21:16

要使用更现代的方法,请使用which-key包中的which-key-show-full-keymap命令。它将要求您提供一个键映射,然后显示来自该键映射的所有绑定,就像您按下前缀键一样(如果启用了which-key-mode )。也就是说,在minibuffer中,很好而且干净。

从文档中:

which-key-show-full-keymap是一个交互式的自动加载的编译Lisp函数,位于‘-key.el’中。

( which-key - Show -full-keymap KEYMAP)使用which-key显示KEYMAP中的所有绑定。键映射是从所有可用的键映射中以交互方式选择的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3480173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档