А по какому собственно алгоритму все редакторы работают?
Как я понимаю: отслеживается нажатие клавы, получается код символа, берется текущая позиция курсора и рисуется символ в нее, затем new_pos = cur_pos + 1.
Как обычно реализуется вычисление позиции курсора и отображение символов?