Есть какая-то философская причина почему вим использует блоковый курсор и как-бы находится над буквой, а не между буквами или это просто так исторически сложилось?
А то всё как-то в разнобой. х удаляет выбранную букву, Х удаляет прошлую букву, т.е. фактически курсор ведет себя как будто он между текущей буквой и прошлой. Совсем по другому ведёт себя вставка через p, она почему-то вставляет между текущей и следующей. В выделение не входит текущая буква. Еще зачем-то есть разделение на i и a...
Хотя можно было просто позволить курсору находиться не над буквой, а между буквами, и всё было бы однозначно.