ncurses जैसे कई पुस्तकालय हैं जो कमांड लाइन जीयूआई बनाने में सहायता करते हैं।कैसे ncurses et। अल। काम?
बस शब्दों में कहें, वे कैसे काम करते हैं?
मेरा पहला विचार यह था कि ncurses सभी कीबोर्ड इनपुट को रोकता है, और सामान्य रूप से इसे लाइन-बाय-लाइन आउटपुट करके प्रत्येक "फ्रेम" खींचता है। हालांकि, निकटतम निरीक्षण से पता चलता है कि प्रत्येक नया फ्रेम पिछले एक को ओवरराइट करता है। यह उन पंक्तियों को कैसे संशोधित करता है जो पहले ही आउटपुट किए जा चुके हैं? इसके अलावा, यह रंग कैसे संभालता है?
संपादित करें: एक ही प्रश्न "फैंसी" इंटरफेस के साथ कुछ भी लागू होता है, जैसे vim
और emacs
।
अधिकांश टर्मिनल समर्थन (कुछ) [एएनएसआई एस्केप अनुक्रम] (https://en.wikipedia.org/wiki/ANSI_escape_code)। वे '\ 033 [' जहां '\ 033' वास्तव में ईएससी के साथ शुरू होते हैं। आप उनमें से कुछ को मुद्रित करने के लिए 'echo -e' का उपयोग करके अपने टर्मिनल पर चारों ओर खेल सकते हैं और देख सकते हैं कि क्या होता है। ('रीसेट' (अंधाधुंध टाइप करें और एंटर दबाएं) यदि आप टर्मिनल को अदृश्य में सेट करने में कामयाब रहे हैं तो आपका मित्र होगा ...) – 5gon12eder