กรณีใช้คลาสสิก:
- คุณเริ่มบันทึกแมโคร:
C-x ( helloคุณทำสิ่งบางอย่างสมมติว่า- คุณเรียกใช้คำสั่งที่ส่งข้อผิดพลาดสมมติว่า
C-g(เช่นคุณเรียกใช้โดยไม่ตั้งใจC-sและคุณต้องยกเลิกสิ่งนั้นด้วยC-gตอนนี้งานของคุณจะหายไป)
ตอนนี้การบันทึกของคุณจะหายไป
ฉันต้องการดำเนินการต่อที่ที่ฉันค้างไว้ก่อนที่ฉันจะรันคำสั่งที่ขัดจังหวะการบันทึกของฉัน ฉันดูC-h f start-kbd-macroแต่เขียนเป็นภาษา C ดังนั้นฉันจึงไม่สามารถปรับแต่งมันได้ ฉันยังตามล่าหาตัวแปรเช่นcurrent-kbd-macroกัน แต่ก็ไม่พบใครเลย
มันสามารถกู้คืนได้?
ปรับปรุง:
ฉันไม่สามารถคิดออกว่าทำไมC-u C-x (ไม่ได้ทำงานสำหรับฉัน C-gแต่ฉันได้ค้นพบว่ามันเป็นเพราะฉันถูกทดสอบด้วย
ปรากฎว่าC-gเป็นสิ่งพิเศษ - หากคุณทริกเกอร์ข้อผิดพลาดประเภทอื่นเช่น
C-x ( M-: (signal 'quit nil)
จากนั้นจะหยุดการบันทึก แต่last-kbd-macroจะมี"M-: M-( signal 'quit nil"แต่ด้วย
C-x ( C-g
สิ่งนี้จะหยุดการบันทึกและละทิ้งทุกสิ่งที่บันทึกไว้ ในฐานะผู้ใช้ Cg-happy (เช่นเดียวกับเพื่อนของฉันอย่างน้อยสองคน) นี่เป็นความแตกต่างที่ค่อนข้างโชคร้าย ฉันพยายามแก้ไขkeyboard-quitแต่ไม่มีสิ่งใดที่ฉันสามารถทำได้
ดูเหมือนว่าวิธีเดียวที่จะกู้คืนนี้จะผ่านrecent-keysโดยอัตโนมัติและการหาที่เริ่มต้น kbd แมโคร (หรือคล้ายกัน) kmacro-edit-lossageถูกเรียกว่าในขณะที่