Подавляющее количество (если не все) текстовых редакторов устроены так как написал esl во втором посте (когда текст расположен вначале и конце памяти а в месте курсора - буфер).

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

Реализация такого редактора получается тривиальной, скорость работы чумовая независимо от размера текста.

При этом больше страницы текста за раз приходится двигать только в случае навигации в начало и конец документа.