【询问】如何记录并输出 Emacs 的按键过程

有没有这样的方法或工具,在我按下了C-c C-t,然后就会生成或者插入字符串C-c C-t。在做 Emacs 相关的笔记时,要记录快捷键,每次都手敲有点累,希望直接照着按它就能够生成。

1 个赞

C-h l (view-lossage) https://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html

一直在用 pjb-echo-keys,非常简单的易用的扩展,不过也略显粗糙,以下是我修改的版本,做了一点优化:

  • 不记录 *echo-keys* 自身产生的按键消息(减少干扰)
  • 增加清屏快捷键

感谢提供的建议,我从@twlz0ne 给的代码那里找到帮助了。

(defun insert-key-sequence ()
  (interactive)
  (insert (key-description
          (read-key-sequence-vector "Pressing... ")))
)

在使用这个命令之后,在我按下 C-c C-c 之后就直接把 “C-c C-c” 插入到 buffer 中了,这正是我想要的效果。

4 个赞

之前尝试过你的方案,但有时会失效,后来就没再启用。

好久没用了,所以忘了是我当时记错了自己设置的快捷键,还是函数把我的快捷键打断了,还是其他什么原因。

今天闲逛发现了 insert key sequence 的另一种写法,我也设置了一个专门的快捷键 C-c ESC k (即 C-c M-k)。

(defun my/insert-key-sequence (key)
  (interactive "kKey Sequence: ")
  (insert (format
           "%S" ; "(kbd %S)"
           (key-description key))))

(keymap-global-set "C-c M-k" #'my/insert-key-sequence)
1 个赞