कैसे एक समारोह को बाँधने के लिए कंट्रोल -2 कुंजी कॉम्बो से बांधें


4

मैं नियंत्रण + कुछ अन्य कुंजी के संयोजन के लिए "इतिहास-खोज-पिछड़े" रीडलाइन कमांड के लिए बैश में एक महत्वपूर्ण बाध्यकारी सेट करना चाहता हूं (मैं उदाहरण के रूप में 2 का उपयोग कर रहा हूं ), लेकिन मैं ऐसा करने में असमर्थ हूं।

(संपादित करें: ऐसा लगता है कि समस्या उदाहरण कुंजी के रूप में 2 की मेरी पसंद थी । मैंने \ Cl के साथ प्रयास किया और यह काम कर रहा है। मैं अभी भी एक उत्तर स्वीकार करूंगा यदि कोई व्यक्ति यह बताता है कि 2 काम क्यों नहीं करता है)

कई कोशिशों के बाद मेरा ~ / .inputrc अब इस तरह दिखता है

set bind-tty-special-chars off
"\C-2": history-search-backward

लेकिन यह काम नहीं करता है और बाइंड -p | grep "-2" कुछ नहीं देता है। अगर मैं नियंत्रण कुंजी के बिना कुछ कोशिश करता हूं, तो यह काम करता है:

"C-2": history-search-backward

मैं सी + - + 2 के अनुक्रम के इतिहास में खोज कर सकता हूं।

bind -p, उदाहरण के लिए, \ C रूप में नियंत्रण देता है:

"\C-w": unix-word-rubout

मैंने अपने इनपुट आर्क में विभिन्न स्वरूपों की कोशिश की है:

Control-2: history-search-backward
Ctrl-2: history-search-backward
"Control-2": history-search-backward

लेकिन कुछ भी नहीं काम करता है।

"\e2": history-search-backward

अगर मैं 2 के बाद एस्केप दबाता हूं तो काम करता है।

क्या कोई मदद कर सकता है?

सेटअप:
फेडोरा 11:
बैश संस्करण 4.0.23 (1)
जीएनयू रीडलाइन 5.2 (मैन पेज के अनुसार)


शायद आपको एक बग मिल गया है? मैं फेडोरा उपयोगकर्ता मंचों की जाँच करने की कोशिश करूँगा। मेरे उत्तर ने गलत तरीके से मान लिया कि इनपुट आर्क एक बाश-वस्तु है और रीडलाइन का हिस्सा नहीं है।
जे। पोलफर

आप जोड़ना चाह सकते हैं कि "\ c2" आपकी सूची में काम नहीं करता, क्योंकि मैंने अपना गलत उत्तर हटा दिया था। यह एक एडिसन-मेकिंग-लाइटबल्ब-चीज़ है, लेकिन कम से कम आप जानते हैं कि यह काम नहीं करता है।
जे। पोलफर

जवाबों:


5

नियंत्रण -2 के लिए कोई ASCII कोड नहीं है। नियंत्रण- @ कंट्रोल-_ के माध्यम से कोड को नियंत्रित करता है 0x1F (यूनिट सेपरेटर) के माध्यम से कोड 0x00 (एनयूएल)। उदाहरण के लिए, नियंत्रण-मैं के लिए कोड 'I' (0x49) शून्य से 0x40 = 0x09 (HT, aka tab) के लिए कोड है। नियंत्रण + के लिए कोई सेट परिभाषा नहीं है (कुछ अन्य वर्ण @ में _ ब्लॉक करने के लिए नहीं)।

प्रोग्राम जो अपने स्वयं के कीबोर्ड हैंडलिंग करते हैं, किसी भी अन्य कुंजी के साथ संयोजन में किसी भी तरह से नियंत्रण की व्याख्या कर सकते हैं। लेकिन बैश जैसे कार्यक्रम, जो एक टर्मिनल के माध्यम से उनके इनपुट को पढ़ते हैं, उनके पास नियंत्रण -2 देखने का कोई तरीका भी नहीं है।

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