2010-08-19 11 views
7

मैं org-mode सीखने की कोशिश कर रहा हूं और ध्यान दिया कि जब मैं emacs से बाहर निकलता हूं तो मेरी फ़ाइलों को अच्छी तरह से तब्दील कर दिया जाता है। पूरी फ़ाइल को प्रकट करने के प्रयास में S-TAB दबाते समय, मुझे मिनी-बफर में निम्न त्रुटि संदेश मिलता है: M-[ z is undefined। त्रुटि गुगल करना सहायक नहीं था। कोई विचार जहां हिचकी हो रही है और मैं इसे कैसे ठीक कर सकता हूं?शिफ्ट-टैब Emacs में क्रिप्टिक त्रुटि उत्पन्न करता है

मैं टर्मिनल.एप, जीएनयू Emacs 23.2.1 के साथ मैक ओएस एक्स 10.6.4 का उपयोग कर रहा हूँ।

संपादित करें: अब मैं पुष्टि कर सकता हूं कि समस्या टर्मिनल.एप है। मुझे कार्बन Emacs का उपयोग करके या ITerm.app के भीतर से Emacs का उपयोग करते हुए यह त्रुटि संदेश प्राप्त नहीं होता है।

धैर्यपूर्वक मुझे समाधान के माध्यम से चलने के लिए गिल्स के लिए धन्यवाद।

+1

क्या करता है एफ 1कश्मीरशिफ्ट + टैब शो? (या 'एम-एक्स वर्णन-कुंजी एस-टैब') – jfs

+0

मिनी-बफर में' एम- [जेड (एम-जेड से अनुवादित) अपरिभाषित है। – jrhorn424

+0

हम्म ... मैं बस एक जीएनयू स्क्रीन सत्र में 'emacsclient -nw' विंडो में भाग गया। मैंने शेल प्रॉम्प्ट पर वापस जाने के लिए विंडो को अलग करने के लिए सी-एक्स सी-सी का उपयोग किया (emacs --daemon अभी भी पृष्ठभूमि में चल रहा है)। फिर मैंने एक नई emacslient खिड़की खोली और एस-टैब ठीक काम किया। मैं जिस प्लेटफ़ॉर्म पर होता हूं उसके आधार पर मैं विभिन्न टर्मिनल (gnome-terminal, xterm, cygwin mintty) से स्क्रीन सत्र को फिर से संलग्न करता हूं। मैं नहीं कह सकता कि मैंने मूल कारण को ट्रैक किया है, लेकिन मेरे मामले में एक नई 'emacsclient -nw' विंडो "निश्चित" खोलना है। Emacs-24.5। मेरे मामले में एक अस्थायी कुंजी मैपिंग मिक्सअप (सुनिश्चित नहीं है) – Juan

उत्तर

8

टर्मिनल और उसके अंदर चल रहे प्रोग्राम के बीच इंटरफ़ेस (यहां, Emacs) केवल वर्ण भेज सकते हैं, कुंजी नहीं। तो विशेष कुंजी या कुंजी संयोजन अक्सर ESC के साथ एक कुंजी अनुक्रम भेजते हैं। उदाहरण के लिए, आपका टर्मिनल शिफ्ट + टैब के लिए स्पष्ट रूप से ESC [ Z भेजता है।

आम तौर पर Emacs इन वर्ण अनुक्रमों को मुख्य नामों में वापस अनुवादित करता है, लेकिन ऐसा लगता है कि डेवलपर्स इसे याद करते हैं। तुम खुद

साथ परिभाषित कर सकते हैं (Emacs < के लिए = 22, बस (define-key function-key-map "\e[Z" [backtab]) का उपयोग करें।)

कुछ मोड S-tab और नहीं backtab के लिए बाइंडिंग परिभाषित कर सकते हैं। यदि आपके पास Emacs 23, (define-key function-key-map [S-tab] [backtab]) है तो इन मोडों को काम करना चाहिए।

+0

हमें Emacs 23 कोड के लिए अतिरिक्त अंतराल की आवश्यकता है। कोई भी मेरी समस्या को ठीक करने लगता है। Emacs अभी भी मेरी '.emacs' फ़ाइल में उन दोनों पंक्तियों के साथ त्रुटि फेंक रहा है। – jrhorn424

+1

[एस-टैब] के बजाय [बैकटाब] का उपयोग करना शायद बेहतर है। कम से कम Emacs 23 में, ऐसा लगता है कि एस-टैब, आईएसओ-बाएं-टैब और अन्य विविधताओं को मैप किया गया है। – JSON

+0

@ जेसन: धन्यवाद, वास्तव में अधिकांश मोड में अब 'बैकटाब' के लिए बाइंडिंग है। @ jrhorn424: क्या आपको अभी भी वही त्रुटि संदेश मिलता है? क्या होगा यदि आप मैन्युअल रूप से '(परिभाषित-कुंजी इनपुट-डीकोड-मैप "\ e [z" [backtab]) का मूल्यांकन करते हैं? – Gilles

1

मूल पोस्टर की तरह, मैं मैक ओएस एक्स का उपयोग कर रहा हूं, लेकिन संस्करण 10.6.8 और जीएनयू Emacs 23.4.1। मैं एस-टैब और संगठन मोड के साथ एक ही समस्या का सामना कर रहा था। मुझे लगता है कि कम से अत्यंत उपयोगी थे चरणों का पालन करके इस को हल करने में सक्षम था: http://stuff.mit.edu/afs/sipb/user/daveg/Info/backtab-howto.txt

संबंधित मुद्दे