Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Удаления символа управления (также называемый DEL или rubout ) является последним символом в ASCII репертуаром, с кодом 127 . [1] Он не должен делать ничего и был разработан для стирания неправильных символов на бумажной ленте . Обозначается как ^? в обозначении каретки и U + 007F в Юникоде .

Эмуляторы терминала могут выдавать DEL при ← Backspaceнажатии клавиши или Control+ ← Backspace или Control+ ?.

История [ править ]

Изначально этот код использовался для маркировки удаленных символов на перфоленте , поскольку любой символ можно было заменить на все, пробив дырки повсюду. Если символ был введен ошибочно, удаление всех семи битов приводило к игнорированию или удалению этой позиции. [2] [3] В шестнадцатеричном формате это 7F для стирания 7 бит ( FF для стирания 8 бит использовалось для 8-битных кодов). Этот символ также можно использовать в качестве отступа для замедления печати после новой строки, хотя чаще использовался нулевой NUL .

Телетайпный модель 33 при условии , ключа с надписью RUB OUTпробивать этот символ (после того, как пользователь резервного копирования ленты с помощью другой кнопки), и не дает ключ , который произвел символ Backspace (BS). Поэтому ряд менее дорогих компьютерных систем, которые использовали телетайпы, использовали этот ключ (и, следовательно, код удаления), чтобы игнорировать предыдущий неправильно набранный символ. Видеотерминалы, предназначенные для замены телетайпа, затем должны были поместить ключ, производящий этот код, там, где можно было бы ожидать Backspace, в частности, в продуктах Digital Equipment Corporation . На терминалах, совместимых с VT100 , это символ, генерируемый ключом с меткой Delete. [4] [5] На более поздних терминалах, таких какVT510 , ключ помечен (в руководстве называется «стрелка назад» [6] ) и по умолчанию отправляется DEL, но может быть настроен на отправку BS.

Другие терминалы, разработанные для систем, в которых не было истории использования Teletypes, обычно заставляли ключ в этой позиции отправлять BS, что приводило к большой путанице. В частности, у Unix была досадная проблема, заключающаяся в том, что в ней можно было запрограммировать стирание предыдущего символа только для одного из них (а не для обоих), что потребовало от пользователя перенастроить драйвер терминала для каждой марки терминала. В зависимости от типа терминала, который использовал разработчик, программное обеспечение иногда заставляло ярлыки Ctrl+ Hили Ctrl+ ?что-то делать, даже если они отправляли тот же код, что и BS и DEL, предполагая, что клавиша Backspace отправляет другой код.

Отмеченный ключ Backspace ←, отправляющий BS, на сегодняшний день является наиболее распространенным в современных терминалах и эмуляторах. Чтобы убедиться, что они не удаляют в обратном направлении, клавиша с пометкой «Удалить» на многих терминалах не отправляет DEL, а вместо этого отправляет escape-последовательность, например ^[[3~. [7]

Текущее использование [ править ]

Unix-подобные операционные системы могут по-прежнему использовать его в качестве символа стирания , т. Е. Для удаления предыдущего символа в строчном режиме . Драйвер терминала по-прежнему не может быть запрограммирован на одновременное использование этого и Backspace: необходимо выбрать один. Однако большинство современных программ обходят это и используют библиотеки, такие как readline, которые принимают оба кода. Большинство эмуляторов терминала Unix можно настроить на отправку либо Delete, либо Backspace при нажатии клавиши Backspace.

DOS / Windows никогда не использовали этот символ. Драйвер клавиатуры BIOS выдавал Backspace при нажатии клавиши Backspace и Null со скан-кодом 53 16 при нажатии клавиши удаления. [8] В Windows клавиша удаления соответствует VK_DELETE (2E 16 ). [9] Шрифты EGA / VGA , используемые консолью Win32 , обычно имеют символ «дома» "в кодовой точке 127 (0x7F), подробности см. На кодовой странице 437 . Однако его наследие можно увидеть в некоторых частях операционной системы Windows: например, Control+ ← Backspaceв Microsoft Notepad используется для вставки символа удаления.[10], пока оно не было изменено в 2018 году, чтобы удалить предыдущее слово. [11]

См. Также [ править ]

  • Восемь человек
  • Backspace

Ссылки [ править ]

  1. ^ Vint Cerf (16 октября 1969). Формат ASCII для сетевого обмена . IETF . DOI : 10,17487 / RFC0020 . RFC 20 .
  2. ^ Роберт С. Мартин (2011). Чистый кодер: Кодекс поведения для профессиональных программистов . Pearson Education . ISBN 9780132542883.
  3. ^ LaFarr (18 августа 2006). " " Лента бумажная "Первый Machinable I / O" .
  4. ^ "Семейство видеотерминалов VT100" . vt100.net.
  5. ^ «Руководство пользователя VT100 - Глава 3 - Таблица 3-4 Коды функциональных клавиш» . vt100.net.
  6. ^ «Информация для программиста видеотерминала VT510 - Глава 5 - Функции управления ANSI» . vt100.net.
  7. ^ «Информация для программиста видеотерминала VT510 - Глава 8 - Обработка клавиатуры» . vt100.net. Архивировано из оригинала на 2016-03-04 . Проверено 12 апреля 2015 .
  8. ^ https://sites.google.com/site/pcdosretro/scancodes
  9. ^ https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
  10. ^ https://superuser.com/a/332034/1175193
  11. ^ https://makeuseof.com/tag/new-improved-windows-10-notepad