"कैरेज रिटर्न" जैसे विशेष पात्रों को "^ M" के रूप में क्यों दर्शाया गया है?


93

^Mवीआईएम और अन्य संदर्भों में एक गाड़ी वापसी का प्रतिनिधित्व करने के लिए क्यों उपयोग किया जाता है?

मेरा अनुमान है कि Mलैटिन वर्णमाला का 13 वां अक्षर है और एक गाड़ी वापसी है \x0Dया दशमलव 13। क्या यही कारण है? क्या यह प्रतिनिधित्व कहीं भी प्रलेखित है?

मैंने देखा कि टैब द्वारा प्रतिनिधित्व किया गया है ^I, जो लैटिन वर्णमाला का नौवाँ अक्षर है। इसके विपरीत, टैब \x09या दशमलव है 9, जो ऊपर वर्णित मेरे सिद्धांत का समर्थन करता है। हालांकि, इस तथ्य के रूप में कहां दस्तावेज किया जा सकता है?


1
यह भी ध्यान रखें कि डॉस / विंडोज़ "0x0d 0x0a" का उपयोग करते हैं, जिन्हें "सीआर एलएफ" के रूप में भी जाना जाता है। लेकिन यूनिक्स / लाइनक्स केवल "0x0a" या "LF" का उपयोग करते हैं। इसलिए जब आप लिनक्स में एक विंडोज़ डॉक्यूमेंट खोलते हैं तो यह अतिरिक्त "CR" का पता लगाता है, और जब आप विंडोज़ में एक linux डॉक्यूमेंट खोलते हैं तो यह अन्य लाइनों का पता नहीं लगाता है।
लातिनसुद

3
@LatinSuD कैरेट नोटेशन (और Ctrl-की का संगत उपयोग) C0 कंट्रोल सेट (ASCII का ऐतिहासिक हिस्सा) से संबंधित है और यह नहीं कि दिया गया ऑपरेटिंग सिस्टम या प्रोग्राम उस लाइन का प्रतिनिधित्व करने में उस सेट के हिस्से का उपयोग करता है या नहीं। अन्य। इसी तरह, चाहे ^Hएक चरित्र को हटा दिया जाए या ओवरप्रिनटिंग की अनुमति देता है (जैसे कि n^H~ñ का उत्पादन करने के लिए एक अप्रचलित तरीका) या नियंत्रण चरित्र का कोई अन्य वास्तविक उपयोग कैरेट संकेतन से अलग है।
जॉन हैना

11
पुराना एक ... मैं मूल कोड याद नहीं कर सकता, लेकिन ctrl-G एक घंटी बजाता है!
ब्रायन ड्रमंड बाद

3
@OlivierDulac नहीं, ^ एम है वास्तव में एक गाड़ी वापसी, जैसे ^ जम्मू वास्तव में एक लाइन फ़ीड है। जबकि अलग-अलग OS के अलग-अलग विचार होते हैं कि क्या लाइन-फीड और / या कैरिज वापस आती है या कुछ और (जैसे कि IBM के कुछ पात्रों द्वारा उपयोग किए गए Newline वर्ण लेकिन ASCII का हिस्सा नहीं है और इसलिए कुछ अन्य OS की ऐतिहासिक विरासत का हिस्सा नहीं होना चाहिए) एक टेक्स्ट फ़ाइल में एक नई लाइन का प्रतिनिधित्व करते हैं, और जबकि कुछ कार्यक्रमों ने तब ओवरराइड किया है कि अलग-अलग तरीकों से, U + 000D स्वयं अभी भी एक गाड़ी वापसी है, जो भी बाद में ऑपरेटिंग सिस्टम जैसे यूनिक्स या डॉस ने इसके साथ करने का फैसला किया। (बेशक, यह कहते हुए ...
जॉन हन्ना

1
@OlivierDulac ... U + 000D प्रोलेप्टिक है, क्योंकि यह नाम 1990 के दशक में यूनिकोड के साथ आया था, लेकिन यह निश्चित रूप से कोड का संदर्भ देता है, क्योंकि यह 1963 में ASCII में मौजूद था, इस बात से कि 1901 में मुरैना के संशोधित बॉडोट कोड में मौजूद था। मरे कई दशकों बाद "टेक्स्ट फाइल" की अवधारणा में उपयोग किए जाने वाले उपकरणों के साथ, घूमने वाले पेपर से संबंधित समस्याओं को हल कर रहे थे। एक कील की तरह कुछ में एक हथौड़ा हथौड़ा, और यह अभी भी एक पेंच है। पाठ फ़ाइल में एक पंक्ति के अंत का प्रतिनिधित्व करने के लिए LF और / या CR का उपयोग करें, और वे अभी भी लाइन-फीड और कैरिज रिटर्न हैं।
जॉन हैना

जवाबों:


115

मेरा मानना ​​है कि ओपी वास्तव में किसके बारे में पूछ रहा था, इसे कैरट नोटेशन कहा जाता है ।

कैरेट अंकन ASCII एन्कोडिंग में अनपेक्षित नियंत्रण वर्णों के लिए एक संकेतन है। संकेतन में एक कैरेट (^) होता है और उसके बाद एक कैपिटल लेटर होता है; यह डिग्राफ ASCII कोड के लिए खड़ा है जिसमें अक्षर का संख्यात्मक मान के बराबर संख्यात्मक मान है। उदाहरण के लिए 4 के मान वाला EOT वर्ण ^ D के रूप में दर्शाया गया है क्योंकि D वर्णमाला में 4 वा अक्षर है। 0 के मान वाले NUL वर्ण को ^ @ (@ A से पहले ASCII वर्ण है) के रूप में दर्शाया गया है। 127 के मान वाला DEL वर्ण आमतौर पर ^ ?, का प्रतिनिधित्व करता है? क्योंकि ASCII '?' '@' से पहले है और -1 127 के समान है यदि 7 बिट्स पर नकाब लगाया जाए। अनुवाद का एक वैकल्पिक सूत्रीकरण यह है कि मुद्रित वर्ण ASCII कोड के 7 वें बिट को निष्क्रिय करके पाया जाता है

ASCII नियंत्रण वर्णों की पूरी सूची के साथ-साथ कैरेट अंकन यहां पाया जा सकता है

Vim और अन्य टेक्स्ट एडिटर्स के बारे में: यदि आप लिनक्स लाइन एंडिंग (LF) की अपेक्षा करते हैं, तो आप आमतौर पर केवल ^ M ही देखेंगे, यदि आप Windows- स्वरूपित (CRLF) टेक्स्ट फ़ाइल खोलते हैं। 0x0A को लाइन ब्रेक के रूप में प्रदान किया जाता है, 0x0D को ^ M के रूप में मुद्रित होने से ठीक पहले। अधिकांश समय, संपादक डिफ़ॉल्ट सेटिंग्स में 'स्वचालित रूप से लाइन अंत को पहचानना' शामिल होता है।


1
मैं हमेशा सोचता था कि उस चीज़ को क्या कहा जाता है ...
smci

5
यह सम्मेलन कम से कम 1970 तक वापस चला जाता है; मैंने पहली बार इसे TOPS-10 ऑपरेटिंग सिस्टम पर देखा था लेकिन यह पहले से मौजूद था। इसके लायक के लिए, पुराने ASCII पर जो चरित्र अब एक कैरेट के रूप में दिखाया गया है, वह वास्तव में एक उर्ध्व-इंगित तीर है, इसलिए यह "अपरोक्ष संकेतन" के रूप में उत्पन्न हुआ।
केशालम

15
यह ASCII डिज़ाइन में बनाया गया है ताकि Ctrl कुंजी सिर्फ 7 बिट टॉगल करे
OrangeDog

2
इसका उपयोग केवल अक्षरों के साथ नहीं किया जाता है। मैं इसे "अक्षर के संख्यात्मक मान" के साथ नियंत्रण चरित्र के रूप में नहीं बल्कि "xor 64" के रूप में परिभाषित करूंगा। दूसरे शब्दों में, ^Aहै 0x41 xor 0x40, या 0x01और ^?है 0x3F xor 0x40, या 0x7F
आर ..

1
Ascii DEL (^?) को हटाने की कुंजी से कोई लेना देना नहीं है। यह वास्तव में <---VT100 जैसे टर्मिनलों पर कुंजी (भी, भ्रामक रूप से बैकस्पेस कहा जाता है) द्वारा उत्पन्न मानक कोड है ।
R ..

22

ठीक यही कारण है।

ASCII गैर-मुद्रण नियंत्रण कोड के रूप में 0-31 वर्णों को परिभाषित करता है। यहाँ ascii(7)एक यादृच्छिक लिनक्स सिस्टम ( man ascii) से, सीआर और (13) सहित मैनुअल पेज से एक अर्क है :

   Oct   Dec   Hex   Char                       
   ─────────────────────────────────────────────
   000   0     00    NUL '\0'                    
   001   1     01    SOH (start of heading)     
   002   2     02    STX (start of text)         
   003   3     03    ETX (end of text)           
   004   4     04    EOT (end of transmission)   
   005   5     05    ENQ (enquiry)               
   006   6     06    ACK (acknowledge)           
   007   7     07    BEL '\a' (bell)             
   010   8     08    BS  '\b' (backspace)       
   011   9     09    HT  '\t' (horizontal tab)  
   012   10    0A    LF  '\n' (new line)        
   013   11    0B    VT  '\v' (vertical tab)    
   014   12    0C    FF  '\f' (form feed)       
   015   13    0D    CR  '\r' (carriage ret)    

पारंपरिक रूप से ये Controlपात्र आवश्यक अक्षर से संबंधित और पत्र से उत्पन्न होते हैं । टेलेटिप और प्रारंभिक टर्मिनल कीबोर्ड में Gइस कारण के लिए कुंजी के ऊपर 'बीईएल' लिखा था ।

ASCII को परिभाषित करने वाले मानक दस्तावेज ASA X3.4-1963 है , जो 1963 में अमेरिकन स्टैंडर्ड्स एसोसिएशन द्वारा प्रकाशित किया गया था। मैं उनकी वेबसाइट पर मूल दस्तावेज़ नहीं ढूँढ सकता, लेकिन मूल दस्तावेज़ से यह उद्धरण वर्ण तालिका दिखाता है, जिसमें शामिल है नियंत्रण कोड ऊपर।


4
धन्यवाद। यद्यपि जानकारीपूर्ण, इस उत्तर में प्रश्न का उत्तर नहीं है।
डॉटनचेन

1
उत्तर दूसरे पैराग्राफ में छिपा है: ^MControl-M के लिए आशुलिपि है। टर्मिनल पर आप ASCII कोड भेजने के लिए M कुंजी के साथ कंट्रोल कुंजी को एक साथ दबाएंगे 0x0D को कार रिटर्न के रूप में भी जाना जाता है।
मार्टिन लीवरेज

14

यह संकेतन सबसे पहले ASCII टेलेटिप्स (सीए 1963) पर वापस जाता है। एक CTRL कुंजी थी जो 0x40 बिट को टॉगल करती थी ताकि CTRL-M (गाड़ी वापसी) 4D के बजाय 0D होगी, CTRL-G (घंटी) 47 की बजाय 07 होगी, CTRL-L (फॉर्म फीड 0 सी के बजाय होगी) के 4 सी।

विशेष कार्यों के लिए विशेष पत्रों को असाइन करने में कोई "डिज़ाइन" नहीं था, यह सिर्फ मौका था कि, जब धूल ASCII कोड असाइन करने से बस गए, एम कुंजी गाड़ी वापसी से एक सा अलग थी और इसलिए गाड़ी वापसी CTRL-M बन गई।

यहाँ सबसे अच्छा शॉट है जो मुझे ASR33 कीबोर्ड से मिल सकता है। जैसा कि आप देख सकते हैं कि नियंत्रण वर्ण नाम छोटे अक्षरों में संबंधित अल्फा कीज़ पर मुद्रित होते हैं।

टेलेटाइप मॉडल 33 ASR पेपर टेप पंच / रीडर के साथ

छवि AlanM1 (व्युत्पन्न (फसली) से: मार्सिन Wichary, उपयोगकर्ता द्वारा फ़ाइल: ASR-33 2.jpg ) [ द्वारा 2.0 सीसी ], विकिमीडिया कॉमन्स के माध्यम से

M कुंजी में इस पर संकेतन नहीं है क्योंकि एक समर्पित "RETURN" कुंजी है, इसलिए CTRL-M अनुप्रेषित है।


2
कुछ स्तरों पर हम अभी भी प्राचीन प्रणालियों की तरह प्रतीत होने वाले डिजाइन विकल्पों से बंधे हैं, यह काफी आश्चर्यजनक है - मुझे लगता है कि प्रतिबिंब पर (ए) यह बहुत समय पहले नहीं है, यह सिर्फ अंतरिम में परिवर्तन की गति है आश्चर्य की बात है, और (बी) यदि पर्याप्त डिजाइन निर्णय किए जाते हैं, तो उनमें से कुछ (विशेष रूप से वे जो लोगों को पर्याप्त समस्याएं पैदा नहीं करते हैं) स्मृति में गायब होने के कारणों के लंबे समय तक चलने के लिए बाध्य हैं। हालांकि इनमें से कुछ चीजों के इतिहास को देखने का एक अजीब एहसास है।
स्टुअर्ट गोलोडेट

2
@StuartGolodetz - वास्तव में, मुझे यह अजीब अजीब लगता है। लेकिन फिर मुझे याद है कि जब टेलेटिप्स "उन्नत तकनीक" थे। (वैसे, टेलेटाइप ASR-33, यह सुरुचिपूर्ण सादगी के लिए उल्लेखनीय था। मैं केवल यही चाहता हूं कि "आधुनिक" कंप्यूटर सिस्टम समान रूप से डिजाइन किए गए थे।)
डैनियल आर हिक्स

1
यह आकर्षक है, लेकिन जो मुझे समझ में नहीं आता है .. क्यों सभी चीजों के बारे में उन्होंने फैसला किया कि इस टाइपराइटर को घंटी की जरूरत है?
CaptainCodeman

4
@CaptainCodeman - जब आप एक महत्वपूर्ण संदेश प्रेषित करते हैं तो आप दूसरे छोर पर ऑपरेटर का ध्यान आकर्षित करने के लिए घंटी बजाएंगे।
डैनियल आर हिक्स

2
यह ध्यान रखना दिलचस्प है कि पीसी कीबोर्ड पर इस दिन Ctrl कुंजी जीवित रहती है।
डैनियल आर हिक्स

3

कंट्रोल कुंजी लिखने के लिए कैरेट (^) शॉर्टहैंड है - CTRL डाउन।

अच्छे पुराने दिनों में आप ये कोड (ऊपर देखें) सीधे टाइप कर सकते हैं, Ctrl कुंजी + G (^ G) टर्मिनल को "डिंग" बना देगा

जब आप Vim में CR जोड़ना चाहते हैं तो आप Ctrl कुंजी + M आदि टैब = Ctrl + I का उपयोग करें


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

"अच्छे पुराने दिनों में" आज भी ^ C और ^ D पूरी तरह कार्यात्मक है। एकमात्र कारण यह है कि ^ G अब टर्मिनल डिंग नहीं बनाता है, अधिकांश टर्मिनल एमुलेटरों की प्रतिक्रिया बंद हो गई है।
सेवनश्रेदी

2

गैर-प्रिंट करने योग्य वर्णों द्वारा प्रदर्शित करने के कुछ दृश्य तरीके की आवश्यकता है।

इसलिए, किसी ने 1970 के दशक की शुरुआत में (या शायद पहले) (मुझे यह सीपी / एम पर देखकर याद है, और किसी और ने पहले ही टीओपीएस का उल्लेख किया है) ने फैसला किया कि "कैरेट प्लस लेटर" 26 unprintable ASCII नियंत्रण वर्णों के लिए प्रतीक होगा। १ थ्रू २६. मान ० है / मुद्रित किया गया था ^ @, और मान १२ ?. के रूप में ^ ?.


1

यह कहां प्रलेखित है, अच्छी तरह से यह पृष्ठ प्रत्येक नियंत्रण चरित्र को सूचीबद्ध करता है, इसे नियंत्रण कुंजी के साथ कैसे प्रवेश / प्रतिनिधित्व करना है (हालांकि पहले एक, एससीआई चरित्र 0, कोई नियंत्रण कुंजी प्रतिनिधित्व नहीं है), और इसमें चरित्र 127 के लिए कुछ भी नहीं है। और यह नीचे स्रोत प्रदान करता है

https://www.cs.tut.fi/~jkorpela/chars/c0.html

कोई भी आश्चर्यचकित हो सकता है, यह देखते हुए कि 33 नियंत्रण वर्ण (ASCII वर्ण 0-31 इसलिए 32 वर्ण, + वर्ण 127 हैं। इसलिए, = 33 वर्ण) वे सभी का प्रतिनिधित्व कैसे करेंगे क्योंकि वर्णमाला में केवल 26 अक्षर हैं। खैर, यह एससीआई चरित्र 1 के लिए Ctrl-A का उपयोग करता है, ascii चरित्र 26 के लिए Ctrl-Z का उपयोग करता है, और वहां एक बार Ctrl-Z तक पहुंचने के बाद, यह उपयोग करता है [ \ ] ^ _

यह Ctrl-Z को SUB के रूप में सूचीबद्ध करता है, हालांकि DOS और cmd प्रॉम्प्ट में यह EOF है, और एक तकनीकी उपयोगकर्ता के रूप में आप इसका उपयोग तब करते हैं जब आपकी फ़ाइल copy con a.aकहाँ होती a.aहै। आप पाठ दर्ज करते हैं और इसे Ctrl-Z के साथ समाप्त करते हैं, जो बहुत मज़ेदार रूप से EOF मार्कर में प्रवेश नहीं करता है। लेकिन सीएमडी को बताता है कि फाइल का अंत तो सीएमडी ही लिखता है।

वह cs.tut.fi वेबपेज इसे एक स्रोत के रूप में देता है
http://www.wps.com/texts/codes/X3.4-1963/ind.net.html

लेकिन यह एक टूटी हुई कड़ी है, लेकिन आर्काइव.ऑर्ग पर उपलब्ध है यह जेपीजी के रूप में है

सूचना इंटरचेंज
ASA मानक X3.4-1963 के लिए अमेरिकी मानक कोड

https://web.archive.org/web/20010430085116/http://www.wps.com/texts/codes/X3.4-1963/index.html


अधिकांश नियंत्रण वर्ण निरर्थक हैं, लेकिन उनमें से कुछ भी जिसका अर्थ Ctrl-I है, मुझे यकीन नहीं है कि आप सिर्फ Ctrl-I कर सकते हैं और एक टैब प्राप्त कर सकते हैं।
बार्लोप

1
नियंत्रण पात्रों में से कोई भी अर्थहीन नहीं है। उनमें से कई कई संदर्भों में अप्रयुक्त हैं, लेकिन हर एक का कम से कम एक अर्थ है।
जॉन हैना

@ जोंहन्ना बेशक मेरा मतलब यह नहीं है कि वे व्यर्थ (पिछले तनाव) थे। लेकिन आर। दशकों तक निरर्थक रहे हैं, यानी वे अपने मूल अर्थों में पहले से थे, तकनीक जो अब नहीं चलती है, (अधिकांश वर्ण आज अर्थहीन हैं) डब्ल्यू / वर्तमान और यहां तक ​​कि थोड़ा पुराने tech.n अगर किसी भी आधुनिक उपयोग करने के लिए रखा जा रहा है यह कई नहीं है। यहाँ एक सूची है en.wikipedia.org/wiki/Control_character जिनका आम उपयोग 0,7,8,9,10,11,12,13,127 है। 9/33 तो अन्य (उनमें से 24) यू या तो बहुत कम या बिल्कुल नहीं होंगे क्योंकि वे आर के रूप में मृत हैं क्योंकि दशकों से इस्तेमाल की जाने वाली मशीनरी के लिए उपयोग किए गए एंटिक का उपयोग नहीं किया गया था
बार्लोप

एसोसिएटेड प्रेस अभी भी ANPA-1312 का उपयोग करता है जो कि प्रत्येक टीसीपी / आईपी कनेक्शन को शुरू करने के लिए 1-4, 6 और 16 का उपयोग करता है। आधुनिक प्रिंटर (अन्य जातियों के बीच) अभी भी 17 और 19 का उपयोग करते हैं। उन लोगों के साथ जिनका आप उल्लेख करते हैं, हमने वास्तव में कोशिश किए बिना उनमें से काफी प्रतिशत कवर किया है। मैं आपको अनुदान देता हूं कि वे भारी उपयोग में नहीं हैं, लेकिन वे या तो मर नहीं रहे हैं।
जॉन हन्ना

1
@barlop आप ^Iमानक बैश में एक टैब के लिए कर सकते हैं : टाइप करें ls ~/^I^Iऔर आपको अपने होम डायरेक्टरी में सभी फ़ोल्डर्स को देखना चाहिए।
वचर्जिन

0

आप इस तालिका Controlमें सभी गैर-उपयुक्त ASCII वर्णों की मैपिंग देख सकते हैं ।


5
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो यहां उत्तर के आवश्यक भागों को शामिल करना बेहतर होगा , और संदर्भ के लिए लिंक प्रदान करना होगा। इस तरह, लिंक किए गए पृष्ठ को किसी भी कारण से कभी भी बदलना या अमान्य हो जाना चाहिए, फिर भी उत्तर सुपर यूजर के लिए आगंतुकों के लिए उपयोगी होगा।
बजे एक सीवी

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