How do Vim and Emacs allow the whole console to be used, even after an enter has been recieved?
(this can be Windows-specific)
I've got unbuffered input, and I have methods for output to print to anywhere in the console.

What methods do Vim/Emacs employ to make the entire screen editable?
I realize I won't be able to use streams, but I also can't understand how unbuffered input would do this either?

As far as I know, Vim or emacs or nano or any other in-terminal text editor are all implemented just using the curses.h library. There are ports of curses for Windows too, and I believe the Windows ports of Vim/emacs are based on that.

I've got unbuffered input, and I have methods for output to print to anywhere in the console.

That seems to describe what conio does. Conio is the DOS counter-part to curses (for Unix/Linux), but (like most DOS/Windows stuff) is much less powerful and has much fewer functions. Curses has a lot more stuff in it, but at the end of the day, this is still generally based on doing character-by-character drawing of the screen, except that curses provides a few nicer things like a blinking cursor and stuff like that.

And if you want to know, you can just check out the source code for one of these editors (they are open-source, after all). You might want to check out a simpler editor, like GNU/nano.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.