Emacs C-। टर्मिनल में काम नहीं कर रहा है


11

मैं GNU Emacs का उपयोग करता हूं, आमतौर पर emacs -nwजो टर्मिनल संस्करण लॉन्च करता है (जैसा कि विंडो GUI संस्करण के विपरीत है)।

मैं स्कूल के पेपर लिखता हूँ LaTeXइसलिए मैं ई flyspell-mode-मेल के भीतर वर्तनी जाँच के लिए उपयोग करता हूँ । यह जीयूआई संस्करण में ठीक काम करता है, लेकिन एक टर्मिनल में, मैं कीस्ट्रोक C-.( Ctrl- .) के साथ मुद्दों में चलता हूं । एक tty में, यह कुछ नहीं करता है, और terminatorया में gnome-terminal, यह केवल एक "" इनपुट करता है।

मैं इसे बनाने के लिए क्या कर सकता हूँ यह विंडो संस्करण में क्या करता है (एक वर्तनी शब्द के लिए वर्तनी सुझाव दिखाएं)?

संपादित करें: इस मामले में, मैं Emacs 23.3.1 के साथ Ubuntu 12.04 का उपयोग कर रहा हूं (जो मुझे लगता है कि 12.04 रेपो से डिफ़ॉल्ट है)।


1
मुझे भी। क्या आपने कोशिश की Esc- x flyspell-mode? यह मेरे लिए काम करता है।
मसरूर

सही है। मैं हमेशा शुरू flyspell-modeके साथ M-xहै, लेकिन ESC xएक फर्क करने के लिए प्रतीत नहीं होता।
cg505

1
मुझे भी। हालाँकि मुझे एक डिफ़ॉल्ट कीबाइंडिंग मिली जो दोनों संस्करणों के लिए काम करती है ESC-TAB
मैकनिसे

हाँ, ESC TABया M-TABदोनों मेरे लिए काम करते हैं। टिप @McNisse के लिए धन्यवाद।
cg505

जवाबों:


4

ऐसा लगता है कि इस सवाल का महत्वपूर्ण हिस्सा पहले से ही टिप्पणियों में उत्तर दिया गया था, लेकिन यदि आप उत्सुक हैं, तो मूल कारण को संबोधित करने के लिए, मुझे लगता है कि ctrl-। टर्मिनल एमुलेटर की कुछ सीमाओं के कारण टर्मिनल में काम नहीं करता है। एक मानक टर्मिनल में, ctrl को आपके द्वारा माइनस 64 दबाने वाली कुंजी का ASCII कोड भेजने के लिए परिभाषित किया गया है (यही कारण है कि ctrl-J (74) newline (10) और ctrl-I (73) भेजता है) टैब (9), उदाहरण के लिए )। चूंकि पीरियड का ASCII कोड 46 है, इसलिए 64 को घटाकर -18 दिया जाएगा, जो अमान्य है क्योंकि यह नकारात्मक है और कोई नकारात्मक ASCII कोड नहीं है और इसलिए ईमैक्स प्राप्त करने और समझने के लिए कुछ भी नहीं है।

जब आप विंडो मोड में emacs चलाते हैं, तो टर्मिनल एमुलेटर तंत्र को बाईपास किया जाता है और इसके बजाय X11 के अधिक मजबूत कीबोर्ड हैंडलिंग का उपयोग किया जाता है, जो अधिक अस्पष्ट कीस्ट्रोक्स को संभाल सकता है (बजाय प्रत्येक कीस्ट्रोक को एक CCII वर्ण तक कम करने के बजाय, प्रोग्राम मूल कुंजी प्राप्त करता है प्लस सभी लागू संशोधक, अलग से)। तो यह शायद tty- आधारित emacs संभाल ctrl- बनाने के लिए असंभव है। जब तक आप अपने टर्मिनल एमुलेटर (और शायद एमएसीएस) में कस्टम संशोधन नहीं करते हैं।


1
यह जवाब वाकई दिलचस्प है। मैंने गहराई से खोदा, और पाया कि DEC VT100 समान लेकिन अलग तरह से, सख्ती से बोल रहा है। नियंत्रण कुंजी और अन्य कुंजी को एक साथ दबाए जाने पर यहां ऐसा होता है: 1) कीबोर्ड स्कैन कोड 2 द्वारा ASCII तालिका देखना) ASCII 3 द्वारा मान्य नियंत्रण कोडों की तालिका देखना) अगर यह वैध है, तो AS5II 4 का बिट 5 और बिट 6 मास्क। ) बाहर भेजना। इसलिए ctrl-J, ctrl-j, और ctrl- * सभी LF को भेज सकते हैं, लेकिन वैधता की जाँच ने संयोजनों को सीमित कर दिया। देखें दिसम्बर VT100 तकनीकी मैनुअल खंड 4-43 (पीडीएफ पेज 93)।
केंजी नोगुची

मैं 'C-.'सिर्फ xterm में emacs के साथ ठीक कैप्चर कर सकता हूं लेकिन urxvt या st के साथ नहीं। किसी भी विचार क्यों मामला हो सकता है?
स्टूज़डेयर

0

हालांकि उपरोक्त उत्तर इस बात पर एक अच्छी व्याख्या देता है कि यह काम क्यों नहीं करता है, यह वास्तव में यह नहीं बताता है कि इसे कैसे काम करना है। के लिए iTerm2आप के द्वारा इस का समाधान कर सकते एस्केप अनुक्रम के लिए एक महत्वपूर्ण मानचित्रण जोड़ने । मुझे लगता है वहाँ में कुछ इसी तरह होगा terminatorयाgnome-terminal

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.