I've always wanted to know how CL GUIs like top or nano or vi are constructed? I have a need to actually make one and am looking for a guide or tutorial on the general idea behind them.
top
nano
vi
Here is a bunch of them.
Also there is a list.