मैं सोच रहा हूँ क्यों Shift+ Arrow Keyमें से एक में परिणाम A, B,C या Dपत्र।
अन्य पत्र क्यों नहीं? आखिर कोई पत्र क्यों?
Shift + Arrow Keysकुछ भी नहीं है।
मैं सोच रहा हूँ क्यों Shift+ Arrow Keyमें से एक में परिणाम A, B,C या Dपत्र।
अन्य पत्र क्यों नहीं? आखिर कोई पत्र क्यों?
Shift + Arrow Keysकुछ भी नहीं है।
जवाबों:
जैसे टर्मिनल emulators gnome-terminal( "टर्मिनल" उबंटू में), लेकिन यह भी xtermऔर urxvt"emulators" नाम है क्योंकि वे पुराने टर्मिनलों जो एक कंप्यूटर का ही प्रदर्शन कर रहे थे के व्यवहार को पुनः कर रहे हैं। इस तरह के टर्मिनलों को कंप्यूटर पर एक पाठ-आधारित प्रोटोकॉल के साथ संचारित किया गया था और शुरू में केवल पाठ प्राप्त करने के लिए डिज़ाइन किया गया था। जल्दी से, अधिक नियंत्रण की आवश्यकता थी: एक पंक्ति को कैसे मिटाया जाए? रंगों का उपयोग करें? या कर्सर की स्थिति बदलें?
स्रोत: यूनिक्स उपयोगिता की कला - कमांड-लाइन इंटरफेस
इस तरह के काम करने के लिए हर टर्मिनल के लिए एस्केप सीक्वेंस डिजाइन किए गए थे। उन्हें एस्केप नाम दिया गया है क्योंकि वे ASCII एस्केप कोड के साथ शुरू करते हैं:33 :। इस तरह के चरित्र को सीधे प्रिंट करने का कोई तरीका नहीं है, जो इस तरह के दृश्यों के लिए अच्छा है। जब हम अभी भी यह प्रदर्शित करना चाहते हैं, ^[[प्रयोग किया जाता है, और यह वह है जो मैं अपने स्पष्टीकरण में उपयोग करूँगा।
जब टर्मिनल प्राप्त हुआ ^[[A, तो इसका मतलब "प्रिंट ^ [[ए" नहीं था, लेकिन "उपयोगकर्ता ने ऊपर-तीर कुंजी दबाया"। "ए" यहां पूरी तरह से मनमाना है: यह सिर्फ उस पत्र के रूप में होता है जिस पर हर कोई सहमत था, क्योंकि डीईसी वीटी -52 और इसके उत्तराधिकारी लोकप्रिय वीटी -100 टर्मिनल का उपयोग करते थे।

स्रोत: DEC VT-52 रखरखाव मैनुअल 1976
यह आज भी टर्मिनल एमुलेटर का काम करने का तरीका है: इस पर निर्भर करता है $TERM चर , नाम terminfoका एक डेटाबेस यह कहने के लिए ज़िम्मेदार है कि किन कोडों को शेल (बैश, श, ज़श ...) को भेजा जाना चाहिए, जो तब उन्हें समझने और प्रतिक्रिया देने के लिए ज़िम्मेदार होता है उनको।
अब, के लिए कोड Shift+ upहोता है ^[[1;2A: टर्मिनल एमुलेटर इस कोड को शेल में भेजता है, जो व्याख्या करने की कोशिश करता है ^[[1;2लेकिन कुछ भी प्रदर्शित नहीं करता है क्योंकि यह उस एस्केप अनुक्रम के बारे में नहीं जानता है। लेकिन Aछोड़ दिया और प्रदर्शित किया जाता है।
^[[Aको समझ में आता है जब मैं तीर कुंजी पर क्लिक करता हूं जबकि टर्मिनल पर एक प्रक्रिया चल रही होती है।
cat >/dev/nullतब टाइप कर सकते हैं , और जब किया जाता है तो Ctrl + C (या फिर तब Ctrl + D) दर्ज करें दबाएं।