Почему Enter одновременно меняет строку и позицию курсора

В текстовом редакторе нажатие Enter обычно вставляет разрыв строки — специальный знак, который сообщает программе: дальше начинается новый абзац или строка. Курсор оказывается сразу после этого знака. Поскольку новая строка ещё пуста, это место совпадает с её левым краем.

Такое поведение не просто удобная договорённость интерфейса: за ним стоит механика пишущей машинки. Чтобы начать следующую строку, её каретку нужно было вернуть в исходное горизонтальное положение, а бумагу — прокрутить вверх на высоту одной строки. В компьютерной терминологии эти операции получили названия «возврат каретки» и «перевод строки».

Два движения — одна клавиша

В старых системах возврат каретки и перевод строки могли передаваться как отдельные команды. В современных текстовых редакторах пользователь нажимает одну клавишу, а программа сама вставляет подходящий символ или последовательность символов. Детали могут различаться между операционными системами и приложениями, но результат для пишущего обычно один: новая строка начинается слева.

Это объясняет и важное исключение: если курсор стоит посреди уже набранного текста, Enter не переносит его содержимое целиком на следующую строку. Клавиша вставляет разрыв именно в месте курсора, разделяя строку на две части. Поэтому текст справа от курсора перемещается вниз, а текст слева остаётся на прежнем месте.