VM
C++ · cli · tools
A course project that got out of hand, in a good way. I wanted to know why Vim feels like it does, not just how to use it.
VM is a small vim-like editor in C++ with ncurses: buffers, commands, macros. Not a Vim clone I would switch to — a way to learn why :w and d3w feel like they do.
The interesting bits are the boring ones. Command parsing, repeat counts, a macro that is just a recorded stream of keystrokes played back into the same loop. Once those parse, the rest of an editor is decoration. That’s also why it’s hard: one wrong assumption in the loop and everything feels off.