समय-समय पर मैं पाठ को संपादित करते समय अप्रत्याशित व्यवहार का निरीक्षण करता हूं। मेरा पहला सहारा आमतौर पर C-h k
यह पता लगाने के लिए उपयोग किया जाता है कि किसी दिए गए मुख्य अनुक्रम द्वारा क्या कार्य कहा जा रहा है। हालांकि, कभी-कभी प्रलेखन मनाया व्यवहार के साथ बाधाओं पर है। इन मामलों में, मैं आमतौर पर मानता हूं कि कुछ अन्य पैकेज ने उस फ़ंक्शन या कुंजी अनुक्रम में हुक किया है और अपने व्यवहार को संशोधित कर रहा है।
मैं कैसे पता लगा सकता हूं कि कौन से कार्य मेरे प्रमुख अनुक्रम में शामिल हैं?
एक उदाहरण जो मुझे हाल ही में मिला, वह यह था कि मैंने "कुंजी दबाया और उद्धरण चिह्न सक्रिय क्षेत्र की शुरुआत और अंत में डाले गए। मुझे संदेह था कि यह डिफ़ॉल्ट 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
जॉर्डन अपने जवाब में एक एक्सटेंशन का उपयोग करता है ? किसी फ़ंक्शन के लिए प्रलेखन शायद विशेष रूप से उस हुक का उल्लेख नहीं करेगा, क्या यह होगा?
C-h k
+ मानक हुक == पूर्ण व्यवहार (अधिक या कम)। बेशक कभी-कभी यह बहुत सारी संभावनाएं छोड़ देता है, लेकिन मैं अभी भी किसी भी अन्य जटिल सॉफ़्टवेयर सिस्टम की तुलना में बहुत अधिक पारदर्शी है।
electric-pair-mode
केवल कुछ प्रमुख मोड में सक्रिय किया गया था? आप अभी भी दिखाई दे रहा हैself-insert-command
के लिए"
जब आप करते हैंC-h k
, जबकिelectric-pair-mode
सक्रिय है?