Hay varias bibliotecas como ncurses que ayudan a hacer GUI de línea de comandos.¿Cómo funciona ncurses et. Alabama. ¿Trabajo?
En pocas palabras, ¿cómo funcionan?
Lo primero que pensé fue que ncurses intercepta toda la entrada del teclado y dibuja cada "cuadro" emitiéndolo línea por línea normalmente. Sin embargo, una inspección más detallada revela que cada nuevo marco sobrescribe el anterior. ¿Cómo se modifican las líneas que ya se han generado? Además, ¿cómo maneja el color?
EDITAR: La misma pregunta se aplica a cualquier cosa con una interfaz "elegante", como vim
y emacs
.
La mayoría de los terminales admiten (algunas de) las [secuencias de escape ANSI] (https://en.wikipedia.org/wiki/ANSI_escape_code). Comienzan con '\ 033 [' donde '\ 033' es de hecho ESC. Puedes jugar en tu propio terminal usando 'echo -e' para imprimir algunos de ellos y ver qué pasa. ('reset' (escriba a ciegas y presione enter) será su amigo si ha logrado establecer el terminal como invisible ...) – 5gon12eder