Введение
Обозначение для управляющих символов; состоит из символа «карет» (^) и буквы. Эта нотация присваивает управляющему коду 1 последовательно буквы алфавита до управляющего кода 26 (0x1A). Для управляющих кодов вне диапазона 1–26 нотация расширяется на соседние неалфавитные символы ASCII. Часто управляющий символ можно ввести с клавиатуры, удерживая клавишу и набирая символ, указанный после карета. Эта нотация часто используется для описания сочетаний клавиш, даже если управляющий символ фактически не используется (например, «нажмите ^X, чтобы вырезать текст»). Значение, интерпретация или реакция на отдельные управляющие коды не определяются нотацией с использованием карета.
Caret notation is a notation for control characters in ASCII. The notation assigns to control code 1, sequentially through the alphabet to assigned to control code 26 (0x1A). For the control codes outside of the range 1–26, the notation extends to the adjacent, non alphabetic ASCII characters. Often a control character can be typed on a keyboard by holding down the and typing the character shown after the caret. The notation is often used to describe keyboard shortcuts even though the control character is not actually used (as in "type ^X to cut the text"). The meaning or interpretation of, or response to the individual control codes is not prescribed by the caret notation.
Описание
Обозначение состоит из каретки, за которой следует один символ (обычно заглавная буква). Символ имеет код ASCII, равный коду управления, с инвертированным битом, представляющим 0x40. Это удобная мнемоническая особенность, позволяющая отображать коды управления от 1 до 26 в виде . Семь ASCII-символов управления отображаются за пределами диапазона заглавных букв: 0 (NUL) – это , 27 (ESC) – это , 28 – это , 29 – это , 30 – это , 31 – это , и 127 (DEL) – это . Примеры: "" для пары Windows CR, LF новой строки, и описание ANSI-последовательности для очистки экрана как "". В обозначении разрешено использовать только символы в диапазоне 63–95 (""), но почти всегда допускается использование строчных букв, введенных с клавиатуры – они рассматриваются как эквивалентные прописным буквам. При преобразовании в символ управления, за исключением '? ', маскировка с помощью 0x1F даст тот же результат и также преобразует строчные буквы в тот же символ управления, что и прописные. Для контрольных кодов, содержащих более 7 бит, таких как контрольные символы C1 от 128 до 159 (0x80–0x9F), соответствующего представления с использованием каретки не существует. Некоторые программы, генерирующие обозначение с кареткой, отображают их как обратную косую черту и восьмеричный код ("" через ""). См. также штриховую нотацию, используемую компьютерами Acorn, ниже.
Examples are "" for the Windows CR, LF newline pair, and describing the ANSI escape sequence to clear the screen as "". Only the use of characters in the range of 63–95 ("") is specifically allowed in the notation, but use of lower case alphabetic characters entered at the keyboard is nearly always allowed – they are treated as equivalent to upper case letters. When converting to a control character, except for '? ', masking with 0x1F will produce the same result and also turn lower case into the same control character as upper case. There is no corresponding version of the caret notation for control codes with more than 7 bits such as the C1 control characters from 128–159 (0x80–0x9F). Some programs that produce caret notation show these as backslash and octal ("" through ""). Also see the bar notation used by Acorn Computers, below.
История
Конвенция восходит как минимум к PDP 6 (1964). В руководстве к PDP 6 описывается печать ↑C, то есть небольшая стрелка, направленная вверх, перед символом C. В процессе перехода от ASCII 1961 года к ASCII 1968 года стрелка вверх была заменена на символ каретки.
Использование в программном обеспечении
Многие компьютерные системы позволяют пользователю вводить контрольный символ, удерживая клавишу и нажимая букву, используемую в каретном представлении. Это удобно, поскольку многие контрольные символы (например, EOT) нельзя ввести непосредственно с клавиатуры. Хотя существует множество способов представления контрольных символов, такое соответствие между обозначением и вводом делает каретное представление подходящим для многих приложений. Обычно необходимость удерживать клавишу избегается, например, строчные буквы работают так же, как и прописные. На американской клавиатуре нажатие клавиши производит DEL, а нажатие производит ^@. Также часто клавиша производит ^@. Каретное представление используется для отображения контрольных символов в выводе многими программами, особенно Unix-терминальными драйверами и программами просмотра текстовых файлов, такими как команды `vi` и `less`. Хотя использование кодов управления в значительной степени стандартизовано, некоторые реализации различаются в зависимости от операционной системы или даже от программы к программе. Фактическое значение или интерпретация отдельных кодов управления не определяется каретным представлением, и хотя спецификация ASCII присваивает имена кодам управления, она не предписывает, как программное обеспечение должно на них реагировать.
Альтернативные обозначения
В API обработки строк GSTrans в операционных системах Acorn Atom и BBC Micro, а также в RISC OS для Acorn Archimedes и более поздних машин, используется символ вертикальной черты вместо символа каретки. Например, (произносится "control em", так же, как и для обозначения) является символом возврата каретки, ASCII 13. — это символ вертикальной черты с кодом 124, — это символ 127, как указано выше, а добавляет 128 к коду следующего за ним символа, таким образом, — это символ с кодом .