Emacs:获得可读的键盘宏

ste*_*lig 14 lisp keyboard emacs macros

insert-kbd-macro用于保存命名键盘宏时,我得到"不可读"的Lisp代码

(fset 'ppsql
   (lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ([134217788 134217765 44 return 44 17 10 return 33 134217765 102 102 backspace 114 111 109 return 17 10 102 111 109 backspace backspace 114 111 return 33] 0 "%d")) arg)))
Run Code Online (Sandbox Code Playgroud)

我宁愿有类似以下的东西:

(fset 'move-line-down
      [?\C-a ?\C-k delete down ?\C-y return up])
Run Code Online (Sandbox Code Playgroud)

IIRC我用同样的方法来记录,名称,同时插入键盘宏:F3,F4,name-last-kbd-macro.

是否可以以可读格式获取第一个宏?

Tör*_*bor 13

Emacs中的键盘宏功能有两种模式:macroskmacros.前者以您喜欢的方式返回宏 - 符号形式 - 后者提供lambda形式.所以,如果你打电话给name-last-kbd-macro你得到一个符号形式,如果你打电话kmacro-name-last-macro,你会得到一个lambda表格.