Возврат каретки: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Строка 13: Строка 13:
== Телекоммуникация, компьютеры ==
== Телекоммуникация, компьютеры ==
[[Файл:Oxygen480-actions-key-enter.svg|60пкс|справа]]
[[Файл:Oxygen480-actions-key-enter.svg|60пкс|справа]]
[[Управляющие символы|Символ]] ведёт свою родословную от [[телетайп]]ов. Изначально телетайпы печатали сообщения на бумажной ленте, не требующей перевода строки. Однако в 1901 году {{не переведено|Дональд Мюррей||en|Donald Murray (inventor)|}} изобрёл [[телетайп]], оснащённый [[QWERTY]] — клавиатурой и способный печатать сообщение на бумажном листе. Для этого требовалось добавить в [[код Бодо]] дополнительные символы: LF ([[перевод строки]], код 02) и CR (''возврат каретки'', код 08).
[[Управляющие символы|Символ]] ведёт свою родословную от [[телетайп]]ов. В 1901 году {{не переведено|Дональд Мюррей||en|Donald Murray (inventor)|}} изобрёл телетайп, оснащённый [[QWERTY]] — клавиатурой и способный печатать сообщение на бумажном листе. Для этого требовалось добавить в [[код Бодо]] дополнительные символы: LF ([[перевод строки]], код 02) и CR (''возврат каретки'', код 08)<ref name="ATM-C">[http://oztypewriter.blogspot.com.au/2012/03/new-zealands-donald-murray-father-of.html New Zealand’s Donald Murray: The Father of the Remote Typewriter], Australian Typewriter Museum, [[Canberra]], 9 March 2012; accessed 10 March 2012</ref>.


Функции возврата каретки и перевода строки были разделены по двум причинам:
Функции возврата каретки и перевода строки были разделены по двум причинам:

Версия от 19:16, 9 августа 2020

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

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

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

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

Первоначально термин «возврат каретки» относился к механизму или рычагу на пишущей машинке. Он использовался после ввода строки и заставлял узел, держащий бумагу (каретку), вернуться вправо, так что машинка была готова печатать дальше на левой стороне бумаги (предполагая письмо слева направо). Рычаг обыкновенно продвигал бумагу на следующую строку. Электрический возврат каретки впервые появился на электрических пишущих машинках фирмы «Electromatic» в 1929 году. Позже эту фирму поглотила IBM и стала выпускать эти машинки под своей маркой как «IBM Electric typewriter[en]»[2][3]. Клавиша, выполнявшая это действие, обыкновенно обозначалась «возврат каретки» (англ. carriage return) или «возврат» (return). В других пишущих машинках, в том числе IBM Selectric, печатающая головка двигалась при печатании, а бумага оставалась неподвижной. В них эта клавиша возвращала влево печатающую головку и иногда называлась «возврат держателя» (англ. carrier return).

С целью улучшения для неанглоговорящих для обозначения этой клавиши был введён знак ↵ (U+21B5).

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

Символ ведёт свою родословную от телетайпов. В 1901 году Дональд Мюррей[en] изобрёл телетайп, оснащённый QWERTY — клавиатурой и способный печатать сообщение на бумажном листе. Для этого требовалось добавить в код Бодо дополнительные символы: LF (перевод строки, код 02) и CR (возврат каретки, код 08)[4].

Функции возврата каретки и перевода строки были разделены по двум причинам:

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

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

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

Для обозначения символа возврата каретки в некоторых программах, которые игнорируют его, если он введён напрямую, возможно использование эмуляции ввода управляющего символа с терминала^M (Ctrl+M). В Си и многих других языках программирования \r обозначает возврат каретки[5]. На ранних кириллических клавиатурах соответствующая клавиша маркировалась «ВК».

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

Примечания

  1. Большая советская энциклопедия. — 3-е изд. — М.: «Советская энциклопедия», 1973. — Т. 11. — 608 с. — 629 000 экз.
  2. Remington and the Electromatic. Retrieved 2016-08-28
  3. The National Museum of American History: Electromatic Typewriter. Retrieved 2016-08-28
  4. New Zealand’s Donald Murray: The Father of the Remote Typewriter, Australian Typewriter Museum, Canberra, 9 March 2012; accessed 10 March 2012
  5. Eric S. Roberts. The Art and Science of C. — Addison-Wesley, 1995. — с. 311. (англ.)
  6. Этот день мы приближали, как могли — блокнот в Windows 10 стал понимать юниксовый перевод строки. Habr.com.
  7. Саша Катушкова. Следите за концом строки. html academy.
  8. The Great Newline Schism. CODING HORROR.