Esistono diverse librerie come ncurses che aiutano a creare GUI da riga di comando.Come si fa ncurses et. al. Lavoro?
In poche parole, come funzionano?
Il mio primo pensiero è stato che ncurses intercetta tutti gli input da tastiera e disegna ogni "frame" emettendo riga per riga normalmente. Un'ispezione più ravvicinata, tuttavia, rivela che ogni nuovo frame sovrascrive quello precedente. Come modifica le linee che sono già state emesse? Inoltre, come gestisce il colore?
MODIFICA: La stessa domanda si applica a qualsiasi cosa con un'interfaccia "elegante", come vim
e emacs
.
La maggior parte dei terminali supporta (alcune) le [sequenze di escape ANSI] (https://en.wikipedia.org/wiki/ANSI_escape_code). Iniziano con '\ 033 [' dove '\ 033' è effettivamente ESC. Puoi giocare sul tuo terminale usando 'echo -e' per stamparne alcuni e vedere cosa succede. ('reset' (digita ciecamente e premi invio) sarà tuo amico se sei riuscito a impostare il terminale invisibile ...) – 5gon12eder