TAB से Ci को कैसे अलग करें?


20

आम तौर पर, ऐतिहासिक कारणों के लिए, emacs TABkeycode और C-iकुंजी को समान मानते हैं , cf. emacs फंक्शन कीज़ पर लिस्प डॉक्यूमेंटेशन या सवाल पर abo-abo के जवाब "TAB और क्या अंतर है?"

नोट: इस पोस्ट में, keycodes हैं TAB, <tab>और C-i; tabऔर Ctrl+ iदूसरी तरफ हैं भौतिक कीबोर्ड पर कुंजियों।

हालांकि, इस समय, Emacs व्यवहार करता है TABऔर C-iएक ही बात, यानी के रूप में (equal (kbd "TAB") (kbd "C-i"))-> t

हालाँकि, चूंकि हम अब कंप्यूटिंग के वंशज में नहीं रह रहे हैं इसलिए मुझे यह बहुत कष्टप्रद लगता है । वहाँ कुछ सुझाव वहाँ क्या इस के आसपास काम करने के लिए किया जा सकता है, जैसे

इन समाधानों में से कोई भी वास्तविक समाधान नहीं लगता है, मैं उन्हें वर्कअराउंड या हैक (मौजूदा बग के ) पर विचार करूंगा ।

वहाँ एक रास्ता है वहाँ emacs मजबूर करने के लिए नक्शे के tabलिए है (kbd "<tab>")और (kbd "TAB")जबकि Ctrl+ emacs स्रोत कोड modyfing की कमी के iलिए मैप किया गया है (kbd "C-i")?

यह दृष्टिकोण पूरी तरह से उपयोगकर्ता के लिए अदृश्य होना चाहिए, जिसका अर्थ है कि tabkeycodes की तरह <tab>और TABएक, जबकि बंधन को मैप चाहिए Ctrl+ iकीकोड की तरह C-iएक और बाध्यकारी के लिए नक्शे चाहिए।

कम गंभीर नोट पर: कोई भी ईमैक डेवलपर्स यहां यह टिप्पणी कर सकता है कि क्या यह एमएसीएस स्रोत कोड में कुछ बिंदु पर परिवर्तित / तय किया जाएगा?


2
ध्यान दें कि TABऔर C-i(कोड, कुंजी नहीं) परिभाषा के अनुसार एक और समान हैं TAB
स्टीफन

@Stefan इसीलिए मैंने नोट की बात को जोड़ा । मैं पोस्ट को संपादित करने जा रहा हूं और इसे वहां डालूंगा।
११


IMO, यह प्रश्न कोई डुप्लिकेट नहीं है, क्योंकि यह TAB (यहां तक ​​कि बाहरी पैकेजों से भी) पर परिभाषित सभी कीबाइंडिंग को स्थानांतरित करना चाहता है, इसके बजाय <टैब> का उपयोग करना है। जबकि दूसरा सवाल यह पूछ रहा था कि उन्हें अपने कोड में कैसे अंतर करना है।
मालाबार 1

मेरा सुझाव kbdTAB को [टैब] के रूप में अनुवाद करने की सलाह देना होगा । यह सिर्फ Emacs के प्रीलोडेड हिस्सों के लिए काम नहीं करेगा।
मालाबार

जवाबों:


21

भविष्य बहुत लंबा हो गया है, और कंप्यूटिंग का पत्थर युग बस आने ही वाला है। सभी पाठ टर्मिनलों मैं अभी भी पता है ठीक उसी बाइट-दृश्य के लिए Emacs को भेजने C-iके लिए के रूप में TAB, तो "यूनिफाई" करने के लिए मूल की जरूरत उन्हें अभी भी हमारे साथ बहुत ज्यादा है।

इनपुट-डिकोड-मैप (अ ला (define-key input-decode-map "\C-i" [C-i])) शायद के बारे में जितना अच्छा हो उतना अच्छा है।

Emacs पूर्व मेंटेनर रूप में, मैं खाली करने के लिए इतनी के रूप में इस समस्या का एक बेहतर समाधान का स्वागत करते हैं, C-i(और C-mऔर C-[GUIs के तहत) कुंजी (शायद बनाने के लिए उन्हें "उपयोगकर्ता के लिए आरक्षित")। लेकिन मुझे नहीं पता कि मौजूदा पैकेज के साथ बहुत सारी समस्याएं पैदा किए बिना ऐसा कैसे किया जाए।



आश्चर्य है कि आप किस तरह के कीबोर्ड का उपयोग करते हैं? विशिष्ट QWERT कीबोर्ड के साथ भेद स्पष्ट है, और इन कुंजियों को अलग करने में सक्षम नहीं होने के कारण ऐसा दर्द होता है ...
इवान हुआंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.