मुझे लगता है कि कुछ विसंगतियों पर बात की जा रही है कि कैसे उच्चारण को नियंत्रित किया जाता है। आप कुछ पॉपकॉर्न को हथियाना चाह सकते हैं, क्योंकि यह थोड़ा सा तकनीकी पाने वाला है ...
यूनिकोड कुछ उच्चारण पात्रों को कई अलग-अलग तरीकों से प्रस्तुत करने की अनुमति देता है: एक "कोड बिंदु" के रूप में, उच्चारण चरित्र का प्रतिनिधित्व करता है, या कोड अंक की एक श्रृंखला के रूप में चरित्र के अस्वीकार्य संस्करण का प्रतिनिधित्व करता है, इसके बाद उच्चारण (ओं)। उदाहरण के लिए, "ä" को या तो U + 00E4 (UTF-8 0xc3a4, लैटिन छोटे अक्षर 1 को डायसिस के साथ) के रूप में प्रस्तुत किया जा सकता है या U + 0061 U + 0308 (UTF-8 0x61cc88, लैटिन छोटे अक्षर + संयोजन संयोजन) के रूप में विघटित किया जा सकता है। )।
OS X के HFS + फाइलसिस्टम के लिए आवश्यक है कि सभी फ़ाइलनामों को UTF-8 में उनके पूरी तरह से विघटित रूप का प्रतिनिधित्व किया जाए । HFS + फ़ाइल नाम में, "ä" को 0x61cc88 के रूप में एन्कोड किया जाना चाहिए, और "ö" को 0x6fcc88 के रूप में एन्कोड किया जाना चाहिए।
मुझे पूरा यकीन है कि यहाँ क्या हो रहा है कि जब आप कमांड लाइन पर "Näyttökuva.png" टाइप करते हैं, तो यह पूर्वगामी रूप में वर्णों को "टाइप" कर रहा है। जब फ़ाइल बनाई जाती है, तो फ़ाइल सिस्टम स्टोरेज के लिए वर्णों को विघटित करता है। सब कुछ अब तक ठीक है। लेकिन जब आप "Nä" से शुरू होने वाले टैब-पूर्णता का उपयोग करने का प्रयास करते हैं, तो मुझे लगता है कि माचिस खोजने से पहले "ä" को विघटित करने में विफल हो रहा है, और निश्चित रूप से इसे कोई नहीं मिला।
अंतर को स्पष्ट करने के लिए, कमांड लाइन पर "Näyttökuva.png" टाइप करने पर क्या एन्कोडिंग का उपयोग किया जाता है, इसका एक उदाहरण है, बनाम जब मैं इसे फ़ाइल नाम के रूप में संग्रहीत करता हूं और इसे भरने के लिए टैब समापन का उपयोग करता हूं:
$ printf Näyttökuva.png | xxd # This time I pasted the it in from this web page
0000000: 4ec3 a479 7474 c3b6 6b75 7661 2e70 6e67 N..ytt..kuva.png
$ touch Näyttökuva.png # Also pasted from the web
$ printf Näyttökuva.png | xxd # This time I tab-completed it after N
0000000: 4e61 cc88 7974 746f cc88 6b75 7661 2e70 Na..ytto..kuva.p
0000010: 6e67 ng
अब, हटाए जाने और पुन: टैब-पूर्ण होने पर वर्णों के खो जाने की बात के रूप में, मुझे संदेह है कि यह निकटता से संबंधित है। विशेष रूप से, मुझे लगता है कि बैश डिलीट की के प्रेस के प्रति एक कोड पॉइंट को "डिलीट" कर रहा है, लेकिन टर्मिनल विंडो से प्रति प्रेस एक कैरेक्टर को मिटा रहा है। क्योंकि हटाए गए वर्णों में से एक ("ö" इस बार) में दो कोड बिंदु शामिल थे, लेकिन केवल एक वर्ण, टर्मिनल डिस्प्ले सिंक से बाहर हो जाता है। टैब को पूरा करने का प्रयास करें, इसे "Näytt" में वापस डिलीट करें, फिर से टैब को पूरा करें: bash को लगता है कि केवल संयोजन डाइअर्सिस हटा दिया गया था, न कि संपूर्ण "ö", इसलिए यह पुनः संयोजन डायरिसिस को जोड़ता है , लेकिन इस बार यह "टी" से जुड़ा है:
$ echo Näytẗkuva.png
Näyttökuva.png
ध्यान दें कि जब मैं रिटर्न दबाता हूं, तो वास्तव में बैश का पूरा फाइलनेम होता है; यह सिर्फ टर्मिनल डिस्प्ले है जो भ्रमित था।
टीएल; डीआर बैश में कुछ बग्स हैं जो डीकॉम्पोज़िट उच्चारण पात्रों को संभालते हैं।
संपादित करें: कुछ खच्चरों के बाद, मुझे लगता है कि एकमात्र समाधान बश को ठीक करना है (/ अपने डेवलपर्स को इसे ठीक करने के लिए प्रतीक्षा करें)। विघटित रूप में वर्णों को इनपुट करने का एक तरीका भी हो सकता है, लेकिन मुझे नहीं पता कि यह क्या होगा। लेकिन मुझे कुछ आंशिक कामगार मिले:
फ़ाइंडर को किसी फ़ाइल को उसके सही रूप में चिपकाने और खींचने के लिए। चूंकि फाइंडर को फाइलसिस्टम से फाइलनेम मिलता है, यह पहले से ही विघटित है, इसलिए यह सिर्फ काम करता है।
आप वास्तव में उच्चारण चरित्र को पूरी तरह से टैब कर सकते हैं। उदाहरण के लिए, यदि आप "Na" टाइप करते हैं और फिर टैब करते हैं, तो यह "Näyttökuva.png" से मेल खाएगा क्योंकि "ä" का विहित विघटन "a" से शुरू होता है। लेकिन अगर आपके पास एक ही निर्देशिका में "नरवाल.गिफ़" नामक एक फ़ाइल है, तो यह बहुत उपयोगी नहीं होगा ...
मैंने इसका परीक्षण नहीं किया है, लेकिन यदि आप टैब को पूर्ण के बजाय मेनू-पूर्ण करने के लिए बाँधते हैं , तो यह आपको संभावित मैचों के माध्यम से टैब करना चाहिए, ताकि आप अपने इच्छित अक्षर का चयन कर सकें, भले ही आप अगले पत्र को टाइप न कर सकें। (या आप इसे एक अलग कीस्ट्रोक से बांध सकते हैं, इसलिए आप इसे केवल तभी उपयोग कर सकते हैं जब आपको इसकी आवश्यकता हो।)
सिंक से बाहर निकल रही टर्मिनल डिस्प्ले के साथ समस्या को ठीक करने के लिए, आप कुछ को redraw-current-line से जोड़ सकते हैं - यह समस्या को होने से नहीं रोकेगा, लेकिन यह आपको डिस्प्ले को फिर से सिंक्रनाइज़ करने का एक तरीका देगा।
$ echo -e "N\xC3\xA4*" | ls
(गूंज देता हैNä*
) परिणाम का उपयोग करनाNäyttökuva.png
। मैक ओएस में अन्य गोले के साथ समस्या भी मौजूद है; और जैसे zshls N
को ऑटो पूरा हो जाता हैls Na<0308>ytto<0308>kuva.png