为了帮助我学习使用各种 emacs 模式,我想要第二台显示器,上面有一个小 HTML 页面,用于向我展示我可以输入什么类型的东西,或者在我目前正在查看的任何内容上进行键和弦emacs。
那么如何获取当前模式下可用的所有命令或键和弦的列表?
为了帮助我学习使用各种 emacs 模式,我想要第二台显示器,上面有一个小 HTML 页面,用于向我展示我可以输入什么类型的东西,或者在我目前正在查看的任何内容上进行键和弦emacs。
那么如何获取当前模式下可用的所有命令或键和弦的列表?
毫无疑问,其他人会告诉您如何获得您要求的备忘单(好吧,这里也有相关信息)。
但是,如果您想要动态地告诉您当前上下文中可用的键,无论它是什么,那么这就是我必须提供的:
C-h m
告诉您当前(主要)模式。C-h b
告诉您当前可用的密钥。
Icicles功能键完成功能使您可以通过key访问所有当前可用的键序列。如果您首先使用前缀键,然后,那么您会看到该前缀键的所有补全。您可以上下移动键层次结构,甚至包括菜单项,以查看所有可能的键。您可以使用任何可用的给定密钥获取帮助(有关信息)。以下是有关此功能的更多信息,可向您展示所有当前可能的键绑定。S-TAB
S-TAB
C-M-RET
我非常想自己知道这个问题的好答案!目前我正在使用这个简单的函数来显示*Help on keys*
缓冲区中当前主要模式的键绑定:
(defun describe-current-bindings (mode)
"Show key bindings for the current major mode in *Help on keys* buffer."
(interactive)
(with-current-buffer (get-buffer-create "*Help on keys*")
(erase-buffer)
(insert (documentation mode))))
然后defadvice
在我切换缓冲区或窗口时自动调用该函数:
(defadvice switch-to-buffer (after display-keys-buffer activate)
(describe-current-bindings major-mode))
(defadvice select-window (after display-keys-window activate)
(describe-current-bindings major-mode))
现在我可以*Help on keys*
在另一个帧中打开缓冲区并将该帧移动到我的第二个监视器。
如果您使用其他功能来切换窗口(从windmove
包等),您可能还需要defadvice
为它们添加。
试试 pacakge help-fns+.el
,有一些有用的功能:describe-mode
- “显示当前主要模式和次要模式的文档。”,describe-keymap
- “描述 KEYMAP 中的绑定,一个值为 keymap 的变量。”等。例如,
(describe-keymap 'global-map) ;; global bindings
(describe-keymap 'emacs-lisp-mode-map) ;; major mode bindings
(describe-keymap 'smartparens-mode-map) ;; minor mode bindings