บางครั้งฉันสังเกตเห็นพฤติกรรมที่ไม่คาดคิดเมื่อแก้ไขข้อความ การขอความช่วยเหลือครั้งแรกของฉันมักจะใช้C-h k
เพื่อค้นหาว่าฟังก์ชันใดที่ถูกเรียกโดยลำดับของคีย์ที่กำหนด อย่างไรก็ตามบางครั้งเอกสารประกอบจะขัดแย้งกับพฤติกรรมที่สังเกตได้ ในกรณีเหล่านี้ฉันมักจะคิดว่าแพ็กเกจอื่น ๆ บางส่วนได้เชื่อมโยงกับฟังก์ชั่นหรือลำดับของคีย์และกำลังแก้ไขพฤติกรรมของมัน
ฉันจะหา ที่ ฟังก์ชั่น hooking เป็นลำดับสำคัญของฉันได้อย่างไร
ตัวอย่างหนึ่งที่ฉันพบเมื่อเร็ว ๆ นี้คือฉันกด"คีย์และเครื่องหมายคำพูดถูกแทรกที่จุดเริ่มต้นและจุดสิ้นสุดของพื้นที่ที่ใช้งานอยู่ ฉันสงสัยว่านี่ไม่ใช่พฤติกรรมของ Emacs ที่เป็นค่าเริ่มต้นดังนั้นฉันจึงเคยC-h k "
ตรวจสอบว่ามีการเรียกใช้ฟังก์ชันใดบ้าง
describe-key
เอกสารบอกว่าฟังก์ชั่นself-insert-command
ที่ถูกเรียกว่าซึ่งเป็นฟังก์ชั่น electric-pair-mode
ที่จะทำให้เรื่องยาวสั้นหลังจากที่จำนวนของการทดลองและข้อผิดพลาดบางอย่างผมก็สามารถที่จะตรวจสอบว่าพฤติกรรมที่เกิดจาก ในอนาคตมีวิธีที่เร็วกว่าที่จะมาถึงข้อสรุปนี้กว่าที่จะปิดแพคเกจที่น่าสงสัยทีละครั้งจนกว่าจะหาผู้กระทำผิด?
electric-pair-mode
ทำงานได้โดยการเชื่อมต่อเข้าpost-self-insert-hook
ด้วยกันและไม่ได้เปลี่ยนการผูกกุญแจ
C-h k
บอกให้คุณทราบว่าเกิดอะไรขึ้นกับปุ่มกด ถ้าคุณดูเอกสารประกอบself-insert-command
มันชัดเจนว่าpost-self-insert-hook
มีการรันหลังจากคำสั่งเสร็จสิ้น
after-change-functions
เช่น Jordon กล่าวถึงในคำตอบของเขา? เอกสารสำหรับฟังก์ชั่นอาจจะไม่พูดถึงตะขอนั้นโดยเฉพาะ
C-h k
+ hooks มาตรฐาน == พฤติกรรมที่สมบูรณ์ (มากหรือน้อย) แน่นอนว่าบางครั้งก็ทำให้มีความเป็นไปได้มากมาย แต่ก็ยังมีความโปร่งใสมากกว่าระบบซอฟต์แวร์ที่ซับซ้อนอื่น ๆ ที่ฉันรู้จัก
electric-pair-mode
เปิดใช้งานในโหมดหลักบางโหมดเท่านั้น? คุณยังคงเห็นself-insert-command
สำหรับ"
เมื่อคุณทำC-h k
ในขณะที่electric-pair-mode
มีการใช้งาน?