Наблюдение: в редактировании текста Vi-подобными шорткатами неожиданно удобным оказывается...откат изменений.
Когда у вас нет режимов, и пользователь нажимает ^Z, что вы будете откатывать? Последнюю букву? Нет, не будете (иначе я вас найду). Последнюю серию нажатий? Тогда какой разрыв между нажатиями клавиш считать незначительным, чтобы отнести эти нажатия к одной и той же единице отката?
В случае Vi все просто как камень. Откатывается последняя команда
Если что, переход в режим ввода, набор текста и переход обратно считаются за одну команду независимо от того, сколько вы там тупили