ฉันขอแนะนำให้เพิ่มฟังก์ชั่นที่ปรึกษาให้กับexecute-extended-command
และอีกread
อย่างที่เมื่อรันคำสั่ง execute-Extended-command สิ่งที่อ่านใน minibuffer จะถูกบันทึกไว้ในบัฟเฟอร์ที่คุณกำหนดด้วยการประทับเวลา
ฉันตั้งใจจะเรียนรู้วิธีการใช้คำแนะนำดังนั้นฉันจะแก้ไขความคิดเห็นนี้ในภายหลังด้วยรหัส elisp ที่ทำงานเมื่อฉันมีรหัสที่ทำสิ่งนี้ (ควรน้อยกว่าสิบบรรทัด)
แก้ไข:
จากผลงานที่ยอดเยี่ยมของ Trey Jackson นี่เป็นเวอร์ชั่นเพิ่มเติมของฉัน:
(defvar my-m-x-log-file "~/mx.log")
(defadvice execute-extended-command
(after log-execute-extended-command activate)
(let ((logfile (find-file-noselect my-m-x-log-file)))
(with-current-buffer logfile
(goto-char (point-max))
(insert (format "%s --- %s --- "
(current-time-string)
this-command))
(where-is this-command t)
(insert "\n"))))
สิ่งนี้บันทึกการประทับเวลาคำสั่งและการโยงคีย์และไม่บดบัง echos ใด ๆ จากคำสั่ง mx
คุณจะต้องบันทึกไฟล์บันทึกด้วยตนเองเช่นเดียวกับที่คุณทำกับ emacs buffer อื่น ๆ ซึ่งแตกต่างจากรุ่นของ Trey อาจมีความเป็นไปได้ที่ไฟล์ถูกเขียนลงไป แต่ไม่มีข้อความ echod ไปที่ minibuffer ปิดบังผลลัพธ์ของคำสั่ง