====== Editor de text: introducere ====== Scopul acestui laborator este familiarizarea studenților cu editorul de texte pe care îl vom folosi pe parcursul semestrului pentru a ilustra în mod practic diversele concepte abordate. === Cod editor === Descărcați scheletul de cod al editorului de text de [[https://github.com/cs-pub-ro/AA-CB-public/tree/master/text-editor|aici]]. === Ncurses === Editorul este bazat pe ''ncurses'' -- o bibliotecă lightweight care facilitează crearea de UIs în terminal. The Linux Documentation Project menține [[https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/intro.html|acest ghid]], care poate servi atât ca introducere cât și ca referință rapidă pentru diverse funcții. === Cerințe === 1. Rețineți textul sub forma unui array bidimensional; săgețile de la tastatură schimbă poziția cursorului în cadrul matricei. Alte taste (litere, cifre, simboluri speciale) înlocuiesc textul de sub cursor. 2. Implementați două moduri diferite de folosire: "view" și "write", similare cu modurile "Normal" și "Insert" din ''vim''. Modul "view" e default; apăsarea tastei "i" trece în "write"; de acolo, apăsarea tastei "" trece în "view" (alternativ, puteți folosi orice alt shortcut vreți). 3. Adăugați un mod de a insera text fără suprascrie text (textul inserat "împinge spre dreapta" textul existent, în limita dimensiunii unui rând în matrice).