Подавляющее количество (если не все) текстовых редакторов устроены так как написал esl во втором посте (когда текст расположен вначале и конце памяти а в месте курсора - буфер).
Только процедуру печати экрана целиком нужно делать тоже "двухстороннюю", когда выше курсора текстпечатается снизу вверх (к началу экрана) а ниже курсора - сверху вниз.
Реализация такого редактора получается тривиальной, скорость работы чумовая независимо от размера текста.
При этом больше страницы текста за раз приходится двигать только в случае навигации в начало и конец документа.