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