emacs

2012-11-20 13 views
5

में कुंजी को पुनर्निर्मित करते समय अनपेक्षित व्यवहार, इसलिए, मैंने डिफ़ॉल्ट से भिन्न आदेश के लिए कुंजी को मैप करने का प्रयास किया है, लेकिन मुझे वांछित प्रभाव नहीं मिलता है।emacs

(global-set-key (kbd "<left>") (message "Use C-f!")) 

जैसा कि आप देख सकते हैं, बिंदु "सी-एफ का उपयोग करें" संदेश प्रदर्शित करना है। गूंज क्षेत्र में जब बायां तीर दबाया जाता है। हालांकि, यह मेरे द्वारा संपादित किए जा रहे वर्तमान बफर में संदेश को आउटपुट करता है।

मुझे क्या याद आ रही है?

सादर,

डेविड Lind

उत्तर

3

आप कमांड के लिए महत्वपूर्ण बाँध चाहिए:

(global-set-key (kbd "<left>") (lambda() (interactive) (message "Use C-f!"))) 
+0

धन्यवाद महोदय! तो कुंजी को एक समारोह के लिए बाध्य होना है? इस तरह मैं इसकी व्याख्या करता हूं क्योंकि मेरे संस्करण के बारे में एकमात्र चीज़ अलग है और आपका यह है कि आपका आदेश लैम्ब्डा फ़ंक्शन के रूप में परिभाषित किया गया है। – davidl

+0

न केवल एक समारोह, एक इंटरैक्टिव फ़ंक्शन। –

+0

लेकिन इसे लैम्ब्डा क्यों होना चाहिए? मैंने अभी भी हैकेल-मोड दर्ज करने पर फ़ाइल लोड करने के लिए वही किया है। '(ऐड-हुक' हैकेल-मोड-हुक (लैम्ब्डा() (लोड-फाइल "~/yada.el")) '.. लैम्ब्डा परिभाषा के बिना कोशिश करने से त्रुटियों को प्रस्तुत किया जाता है, क्या लोड-फ़ाइल स्वयं एक फ़ंक्शन नहीं मानती है? क्योंकि '(ऐड-हुक' हैकेल-मोड-हुक 'लोड-फ़ाइल "~/yada.el")' विफल रहता है। शायद यह एक और पोस्ट का विषय है? :) – davidl