ฉันเริ่มเขียนโค้ดโหมดย่อยเพื่อให้การป้อนคีย์บางอย่าง ความพยายามเริ่มต้นของฉันมีการพิมพ์ผิด:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(([b] . 'previous-line)))
ผมตั้งใจว่าจะใช้b
ที่สำคัญและตระหนักได้ทันทีว่าฉันควรจะได้นำมาใช้แทน"b"
[b]
ดังนั้นฉันจึงนิยามโหมดย่อยใหม่:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(("b" . 'previous-line)))
อย่างไรก็ตามสิ่งนี้ไม่ได้ผล สิ่งนี้ทำให้ฉันตกอยู่ในการไล่ล่าห่านป่าผ่านวิธีการต่างๆของกุญแจที่มีผลผูกพัน (เช่น, (kbd ... ), [... ], ฯลฯ ) ในที่สุดฉันก็รู้ว่าเพียงแค่การประเมิน(define-minor-mode ...)
รูปแบบใหม่นั้นไม่ได้เปลี่ยนแปลงอะไรเลยฉันติดอยู่กับแผนที่หลักดั้งเดิมที่แตกหัก ฉันลองเปลี่ยน keymap โดยตรงผ่านทาง(define-key borked-mode-map ...)
และยังไม่สามารถโหลด keymap ที่แก้ไขได้ ในที่สุดฉันก็เริ่ม Emacs ใหม่และโหมดรองของฉันโหลดอย่างถูกต้อง
คำถามของฉันคือคุณจะปรับปรุงคำจำกัดความโหมดรองในขณะที่คุณพัฒนามันได้อย่างไร? มีวิธีการล้างคำจำกัดความที่เสียหายหรือไม่หรือคุณต้องรีสตาร์ท emacs เพื่อล้างบิตที่ใช้งานไม่ได้?
defvar
จะได้ประเมินมูลค่าของมันอีกครั้งหลังจากC-M-x
:) คุณต้องการต้องหรือแยกต่างหากdefparameter
setf