Возвра́т каре́тки — управляющий символ или механизм, используемый для возвращения позиции устройства к началу строки. Часто обозначается как CR (от ).

Происхождение термина

Каретка (от  — тележка) — узел машины или механизма, несущий ряд деталей и передвигающийся по направляющим или вращающийся в подшипниках. В пишущих машинках имела вид рамки с валиком для бумаги.

Пишущие машинки

Каретка механической пишущей машинки представляет собой конструкцию, составленную из шасси для ударяющих по печатающей ленте молоточков с литерами на ударной стороне и держателя печатающей ленты, держащего печатающую ленту над бумагой на уровне печатаемой строки. При этом каретка пишущей машинки устанавливается на рельс, по которому горизонтально смещается слева направо в процессе печати очередной текстовой строки. Первоначально термин «возврат каретки» относился именно к этому механизму, возвращающему каретку в исходное положение — в начало следующей строки. Механизм возврата каретки приводился в действие рычагом. Чаще всего рычаг также приводил в действие механизм, продвигавший бумагу на следующую строку. Электрический возврат каретки впервые появился на электромеханических пишущих машинках фирмы «Electromatic» в 1929 году. Позже эту фирму поглотила IBM и стала выпускать эти машинки под своей маркой как «».Remington and the Electromatic . Retrieved 2016-08-28The National Museum of American History: Electromatic Typewriter . Retrieved 2016-08-28. Клавиша, выполнявшая это действие, обыкновенно обозначалась «возврат каретки» () или «возврат» (). В других пишущих машинках, в том числе IBM Selectric, печатающая головка двигалась при печатании, а бумага оставалась неподвижной. В них эта клавиша возвращала влево печатающую головку и иногда называлась «возврат держателя» ().

Позже для обозначения этой клавиши был введён знак ↵ (U+21B5).

Телекоммуникации, компьютеры

Управляющий символ возврата каретки ведёт свою родословную от телетайпов. В конце годов сконструировал прообраз телетайпа — телеграфный аппарат, оснащённый QWERTY-клавиатурой и способный печатать сообщение на бумажном листе. Для этого потребовалось добавить в код Бодо дополнительные управляющие символы: перевод строки (, ) и возврат каретки (, )New Zealand’s Donald Murray: The Father of the Remote Typewriter , Australian Typewriter Museum, Canberra, 9 March 2012; accessed 10 March 2012.

Функции возврата каретки и перевода строки были разделены по двум причинам: Сам по себе возврат каретки предоставлял возможность печати новой строки поверх имеющейся. Это могло быть использовано для получения полужирного шрифта, подчёркиваний, знаков под ударением, зачёркнутого текста и некоторых составных знаков. В дальнейшем, когда принтеры стали графическими, принтер мог вернуть каретку, а потом прокрутить бумагу на любое желаемое расстояние — в том числе ровно на высоту каретки или на пол-иголки (для качественной двухпроходной печати). На частотах в десятки бод возврат каретки был самой длинной операцией, а буферизации, чтобы на это время приостановить печать, не было. Поэтому время, употреблённое на перевод строки, не было потрачено зря (нередко требовалось несколько дополнительных нажатий клавиши, прежде чем возврат каретки был произведён и можно было печатать дальше). Поэтому возврат каретки всегда производился первым, до перевода строки.

В ранних компьютерах для ввода информации использовались обычные телетайпы, однако в 1963 году специально для ввода и хранения данных компьютерами была разработана первая версия кодировки символов ASCII, в которой символы перевода строки и возврата каретки были размещены в кодовых позициях и . В последующих кодировках, в том числе в Юникоде, эти управляющие символы расположены на тех же местах.

Многие компьютерные программы используют для обозначения конца строки символ возврата каретки отдельно или вместе с символом перевода строки, но для этой задачи используются и другие символы; другие используют его только для разбиения абзаца. Некоторые стандарты, вводящие собственные обозначения для управления строками и абзацами (например, HTML), и многие языки программирования обрабатывают символы возврата каретки и перевода строки как пробел.

Для обозначения символа возврата каретки в некоторых программах, которые игнорируют его, если он введён напрямую, возможно использование эмуляции ввода управляющего символа с терминала — (). В Си и многих других языках программирования \r обозначает возврат кареткиEric S. Roberts. The Art and Science of C. — Addison-Wesley, 1995. — с. 311.. На ранних кириллических клавиатурах соответствующая клавиша маркировалась «ВК».

Как правило, клавиша возврата каретки располагается в правой части клавиатуры и отвечает как за возврат каретки, так и за перевод строки, а также за ввод команды. В терминалах могли использоваться раздельные клавиши для возврата каретки и перевода строки, а также специальный режим, в котором генерировались оба этих символа. На IBM PC-совместимых и современных USB HID-клавиатурах скан-код клавиши не привязан к коду соответствующего ей символа: за перевод скан-кодов в коды символов отвечает операционная система, поэтому генерируемый при нажатии клавиши управляющий символ (или их последовательность) зависит от используемой системы. В Windows это традиционно CR+LF, в классической Mac OS — только CR, а в Unix-подобных системах — только LF. Отсутствие единого стандарта часто приводит к проблемам, когда приходится передавать файлы между разными операционными системами.

Примечания

Категория:Управляющие символы Категория:Пробельные символы