當使用insert-kbd-macro
保存名爲鍵盤宏我得到「無法讀取」 Lisp的喜歡Emacs的:越來越可讀鍵盤宏
(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)))
代碼,我寧願有類似如下:
(fset 'move-line-down
[?\C-a ?\C-k delete down ?\C-y return up])
IIRC我用同樣的方法來記錄,命名和插入兩個鍵盤宏:F3,F4,name-last-kbd-macro
。
是否有可能以可讀格式獲取第一個宏?
當你檢查`kmacro-name-last-macro`(`Ch f kmacro-name-last-macro`)的函數定義時,你會在最後一行看到它調用`kmacro-lambda-form`在宏上 - 這就是爲什麼你得到lambda表單。 (下次更好地編輯您的問題,然後發佈一個新的答案。) – 2009-04-21 08:41:39