मैं भाषण मान्यता के साथ उपयोग के लिए एक एमएसीएस एक्सटेंशन लिख रहा हूं, और मैं एक विशेष सुविधा के साथ मदद की तलाश कर रहा हूं। कुछ शब्द वाक् पहचानकर्ता (ड्रैगन) लगातार खराब पहचानते हैं - इससे कोई फर्क नहीं पड़ता कि आप इसे कितनी बार प्रशिक्षित करते हैं, यह सिर्फ कुछ शब्दों को पहचानने पर चूसना होगा। उसी समय जब आप किसी विषय पर लिख रहे होते हैं या कोडिंग करते हैं तो आप बार-बार एक ही शब्द का उपयोग कर रहे होंगे।
इसलिए मैंने एक ऐसी विधा लिखी है जो बफ़र में शब्दों को कैसे प्रस्तुत किया जाता है इसे बदलने के लिए ओवरले का उपयोग करता है। यह शब्द में एक यादृच्छिक अक्षर लेता है, इसे एक यादृच्छिक रंग में रेखांकित करता है, और इसके शीर्ष पर एक यादृच्छिक डाइक्रिटिकल मार्क (उच्चारण, उमलूट, आदि) डालता है। यहाँ एक स्क्रीनशॉट है (आपको अंक / अंडरलाइन देखने के लिए ज़ूम इन करना होगा):
फिर आप कह सकते हैं, "बैंगनी पी बाल" और यह शब्द के लिए एक बैंगनी अंडरलाइन के साथ दिखेगा 'a' के साथ एक विशेष चिह्न के साथ जो बालों की तरह दिखता है और आपके लिए उस शब्द को टाइप करता है। इसलिए ऊपर दिए गए स्क्रीनशॉट में कहा गया है कि इससे आपके लिए "regexp-quote" टाइप करने के लिए emacs होगा।
विचार यह है कि इससे आप किसी भी ऐसे शब्द का उल्लेख कर सकते हैं जिसे आपने पहले ही प्रयोग कर लिया है, जिसे पहचानने वाले शब्दों के सीमित सेट का उपयोग करके ऑनस्क्रीन लगातार पहचानने में अच्छा है।
यह बहुत अच्छी तरह से काम करता है, कभी-कभी एक टकराव को छोड़कर। इसे बनाने के लिए मैं शब्दों को लगातार उसी तरह से संदर्भित करना सीख सकता हूं जिस तरह से मैं शब्द के md5 हैश से बाइट्स का उपयोग कर रहा हूं (random)
या एक एल्गोरिथम होने के कारण परिवर्तनों को ऐसे असाइन करता हूं जिससे टकराव से बचा जाता है। मैंने केवल 6 आसानी से अलग-अलग रंगों को पाया है (यह कठिन है जब अंडरलाइन केवल एक वर्ण चौड़ा और एक एकल पिक्सेल मोटा है) और 3 आसानी से भेद करने योग्य अंक (एक दूसरे से अलग बताने के लिए आसान और उपरोक्त पर एक रेखांकन के साथ भी भ्रमित नहीं है) लाइन या अंडरलाइनिंग के साथ ओवरलैपिंग), ऊपर के स्रोत के शीर्ष पर देखा जाता है।
टकराव की आवृत्ति को कम करने के लिए मुझे रेंडरिंग को बदलने के लिए और तरीकों की आवश्यकता है। आदर्श रूप से एक प्रतिपादन संशोधन होगा:
- बाकी टेक्स्ट से घबराना नहीं चाहिए। यह मुझे उलटा वीडियो संपत्ति के उदाहरण के लिए खारिज करने के लिए प्रेरित करता है।
- अन्य परिवर्तनों के साथ आसानी से भ्रमित नहीं होना चाहिए। पिछली लाइन पर रेखांकित करने के लिए ओवरलाइन आसानी से गलत हैं। जब तक आपके फ़ॉन्ट का आकार अव्यवहारिक रूप से विशाल न हो, तब तक बहुत सारे समान चिह्न दिखाई देते हैं।
- जहां अन्य परिवर्तन हैं, उसके पास स्थानिक हों। अभी एक बार मेरी आंख को लक्ष्यीकरण वर्ण मिल गया है, सभी जानकारी वहां है, मार्कर, रेखांकित, और पत्र।
- एक निश्चित चौड़ाई के फॉन्ट (कोडिंग के लिए आवश्यक) के साथ अच्छी तरह से काम करें जो सही ढंग से डायक्रिटिकल मार्क्स को प्रस्तुत करता है (मुझे मार्क्स को कॉन्सोल से DejaVu Sans Mono में बदलना था ताकि मार्क्स सही तरीके से प्रस्तुत कर सकें)
- लैटिन वर्णमाला के अक्षरों पर काम करें। उदाहरण के लिए अरबी संयोजन अंक हैं, लेकिन वे लैटिन वर्णमाला वर्णों पर संयोजन नहीं करते हैं।
- अक्षर रंग नहीं बदलें, क्योंकि यह पहले से ही वाक्य रचना हाइलाइटिंग के लिए इस्तेमाल किया जा रहा है।
- वास्तव में emacs के साथ emacs में उल्लेखनीय हो lisp;)
शायद विशेष यूनिकोड वर्ण हैं जो प्रतिपादन को नियंत्रित करते हैं जो नई संभावनाओं को खोलने के लिए दुरुपयोग किया जा सकता है? या मोटे तौर पर रेखांकित करने का एक तरीका है ताकि मैं आसानी से अधिक रंगों को भेद कर सकूं? या कुछ अन्य अस्पष्ट emacs आपको यूनिकोड के अलावा पात्रों के शीर्ष पर अंक प्रदान करने की सुविधा देते हैं?
(char-to-string ?\uFEFF)
और दूसरा एक लक्षित वर्ण है जिसे घटाया गया है आकार ताकि वे दोनों फिट हों। एक अन्य विचार एक ऊर्ध्वाधर स्ट्राइक-थ्रू ( कुछ फोंट में उपलब्ध है , लेकिन सभी के लिए नहीं) का उपयोग करना होगा जैसा कि लाइब्रेरीvline.el
emacswiki.org/emacs/VlineMode