В режиме вставки курсор находится между символами или перед первым или после последнего символа. В обычном режиме курсор находится над символом (для этой цели новые строки не являются символами). Это несколько необычно: большинство редакторов всегда помещают курсор между символами, и большинство команд воздействуют на символ после (не строго говоря, под ) курсора. Возможно, это отчасти связано с тем, что до графического интерфейса текстовые терминалы всегда отображали курсор на символе (подчеркивание или блок, возможно, мигание). Эта абстракция терпит неудачу в режиме вставки, потому что для этого требуется еще одна позиция (сообщения против заборов).
Переключение между режимами должно, так сказать, перемещать курсор на полсимвола. Команда iперемещается влево, чтобы поместить курсор перед символом, над которым он был закончен. Команда aдвижется вправо. Выход из режима вставки (нажатием Esc) перемещает курсор влево, если это возможно (если он находится в начале строки, вместо этого он перемещается вправо).
Я полагаю, что Escповедение имеет смысл. Часто вы печатаете в конце строки, и там Escможно идти только влево. Таким образом, общее поведение является наиболее распространенным поведением.
Думайте о символе под курсором как о последнем интересном символе, а о команде вставки - a. Вы можете повторить, a Escне перемещая курсор, за исключением того, что вы будете ударены на одну позицию вправо, если вы начнете с начала непустой строки.