आम तौर पर, ऐतिहासिक कारणों के लिए, emacs TAB
keycode और 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
।
हालाँकि, चूंकि हम अब कंप्यूटिंग के वंशज में नहीं रह रहे हैं इसलिए मुझे यह बहुत कष्टप्रद लगता है । वहाँ कुछ सुझाव वहाँ क्या इस के आसपास काम करने के लिए किया जा सकता है, जैसे
"मैं TAB को बदलने के बिना सीआई को एक कमांड कैसे बांध सकता हूं?"
- ट्रे के समाधान ने मेरे लिए काम नहीं किया, चर
local-function-key-maps
नहीं बदला गया है। संशोधित करने केdelete
बजाय इसका उपयोग करने के लिएdelq
संशोधित चर में परिणाम होता है, लेकिन यह समाधान नहीं लाता है ... tabऔर Ctrl+ iअभी भी समान हैं। - हाइपर मैप में अनुवाद करना 1980 के दशक के वर्कअराउंड की तरह लगता है ... मैं Hyper+ का उपयोग करना चाहता हूं i।
- ट्रे के समाधान ने मेरे लिए काम नहीं किया, चर
कुछ पोस्ट-ASCII नियंत्रण कोड के
input-decode-map
लिए मानचित्र Ctrl+ का उपयोग करनाi लगभग वही है जो मैं देख रहा हूं। सिवाय इसके कि यहkbd
स्थूल अर्थ के साथ ठीक से काम नहीं करता है कि किसी को स्रोत कोड के सभी बिट्स को संशोधित करना होगा जो बाइंड Ctrl+ करेगा i। यकीनन यह सबसे अच्छा समाधान है जो सभी स्रोत कोड को ठीक से संशोधित किया गया है।का उपयोग
(kbd "<tab>")
करने के लिए tabऔर(kbd "C-i")
(जो करने के लिए अनुवाद(kbd "TAB")
यानी\t
शाब्दिक) के लिए Ctrl+ i काम करता है , लेकिन आप को संशोधित करना होगा सभी जिनमें से गलत तरह का उपयोग स्रोत फ़ाइलों tab[पढ़ें: कीकोडTAB
] जो कष्टप्रद है।
यह एक github मुद्दे में और साथ ही emacs.sx पर भी सुझाया गया है ।
इन समाधानों में से कोई भी वास्तविक समाधान नहीं लगता है, मैं उन्हें वर्कअराउंड या हैक (मौजूदा बग के ) पर विचार करूंगा ।
वहाँ एक रास्ता है वहाँ emacs मजबूर करने के लिए नक्शे के tabलिए है
(kbd "<tab>")
और(kbd "TAB")
जबकि Ctrl+ emacs स्रोत कोड modyfing की कमी के iलिए मैप किया गया है(kbd "C-i")
?यह दृष्टिकोण पूरी तरह से उपयोगकर्ता के लिए अदृश्य होना चाहिए, जिसका अर्थ है कि tabkeycodes की तरह
<tab>
औरTAB
एक, जबकि बंधन को मैप चाहिए Ctrl+ iकीकोड की तरहC-i
एक और बाध्यकारी के लिए नक्शे चाहिए।
कम गंभीर नोट पर: कोई भी ईमैक डेवलपर्स यहां यह टिप्पणी कर सकता है कि क्या यह एमएसीएस स्रोत कोड में कुछ बिंदु पर परिवर्तित / तय किया जाएगा?
kbd
TAB को [टैब] के रूप में अनुवाद करने की सलाह देना होगा । यह सिर्फ Emacs के प्रीलोडेड हिस्सों के लिए काम नहीं करेगा।
TAB
औरC-i
(कोड, कुंजी नहीं) परिभाषा के अनुसार एक और समान हैंTAB
।