(defun append-kbd-macro (macroname filename &optional keys) "\ Append kbd macro NAME in file FILE, as Lisp code to define the macro. Use load to load the file. Third argument KEYS non-nil means also record the keys it is on. (This is the prefix argument, when calling interactively.)" (interactive "CAppend kbd macro (name): FAppend kbd macro %s to file: P") (byte-code "ฤล $" [macroname filename keys t nil write-kbd-macro] 5)) (defun write-kbd-macro (macroname filename &optional keys appendflag) "\ Save kbd macro NAME in file FILE, as Lisp code to define the macro. Use load to load the file. Third argument KEYS non-nil means also record the keys it is on. (This is the prefix argument, when calling interactively.) Fourth argument APPENDFLAG non-nil meams append to FILE's existing contents." (interactive "CWrite kbd macro (name): FWrite kbd macro %s to file: P") (byte-code "ลฦว!qศ ษcส \"หcส K\"ฬcอ ! E ฮcส @\"ฯcส \"ฬc A% )ะed$))" [buffer macroname keys filename appendflag nil get-buffer-create " write-kbd-macro-temp" erase-buffer "(fset '" prin1 " " ") " where-is-internal "(global-set-key " " '" write-region] 16)) (defun kbd-macro-query (flag) "\ Query user during kbd macro execution. With prefix argument, enters recursive edit, reading keyboard commands even within a kbd macro. You can give different commands each time the macro executes. Without prefix argument, reads a character. Your options are: Space -- execute the rest of the macro. DEL -- skip the rest of the macro; start next repetition. C-d -- skip rest of the macro and don't repeat it any more. C-r -- enter a recursive edit, then on exit ask again for a character C-l -- redisplay screen and ask again." (interactive "P") (byte-code "ร วศ! รรษ * ?% รรสห!r*ฬUD อUU ฮ ฯUf ะUr ั าU รรษ *)'