stringtranslate.com

Удалить персонажа

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

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

История

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

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

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

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

Текущее использование

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

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

Смотрите также

Рекомендации

  1. Винт Серф (16 октября 1969 г.). Формат ASCII для сетевого обмена. IETF . дои : 10.17487/RFC0020 . РФК 20.
  2. ^ Роберт К. Мартин (2011). Чистый программист: Кодекс поведения для профессиональных программистов. Образование Пирсона . ISBN 9780132542883.
  3. ^ Лафарр (18 августа 2006 г.). «Бумажная лента. Первый обрабатываемый ввод-вывод».
  4. ^ «Семейство видеотерминалов VT100» . vt100.net.
  5. ^ «Руководство пользователя VT100. Глава 3. Таблица 3-4 Коды функциональных клавиш» . vt100.net. Архивировано из оригинала 14 марта 2016 г. Проверено 12 апреля 2015 г.
  6. ^ «Информация о программисте видеотерминала VT510 - Глава 5 - Функции управления ANSI» . vt100.net.
  7. ^ «Информация о программисте видеотерминала VT510 – Глава 8 – Обработка клавиатуры» . vt100.net. Архивировано из оригинала 4 марта 2016 г. Проверено 12 апреля 2015 г.
  8. ^ «Код сканирования клавиатуры/комбинации кодов символов — PC DOS Retro» . Архивировано из оригинала 01 мая 2020 г. Проверено 19 апреля 2020 г.
  9. ^ «Коды виртуальных клавиш (Winuser.h) — приложения Win32» . 22 июня 2022 г.
  10. ^ «Ярлыки — поведение CTRL-Backspace в Блокноте» .
  11. ^ «Новый и улучшенный блокнот Windows 10: полезные советы и функции» . 23 ноября 2018 г.