Yeah, Vi is most likely full of clever optimisations as to how text is stored and drawn on the screen. Why reinvent the wheel?
I too wrote my own editor in Lisp 2 years ago, and also wrote one for the Z80-based Z88, but that was too slow, although the Lisp version was okay. But the Z88 (6Mhz Z80) would have required a lot of optimisation and it was my lesson about how what can seem easy requires tons of special cases.
But writing an editor is a good way to learn some things about computer science.