Книга: Разработка приложений в среде Linux. Второе издание
21.3.2. Управляющие последовательности
21.3.2. Управляющие последовательности
Существуют несколько отдельных типов управляющих последовательностей. Самый простой тип представляет собой символ перехода (^[
), за которым следует один командный символ. (Несмотря на то что символ перехода отображается в строках С как 33
, в файлах и документации по termcap
и terminfo
принято обозначение ^[
.) Пять из таких односимвольных команд предваряют более сложные управляющие последовательности, которые называются командными последовательностями. Остальные побуждают консоль предпринимать простые действия и немедленно покидать режим перехода. Простейшие управляющие последовательности описаны в табл. 21.2.
Таблица 21.2. Последовательности управления консолью
Управляющие последовательности | Описание |
---|---|
^[М |
Курсор перемещается вверх на одну строку в текущей колонке; если необходимо, то экран прокручивается вниз (обратный перевод строки). |
^[D |
Курсор перемещается вниз на одну строку в текущей колонке; если необходимо, то экран прокручивается вверх (перевод строки) |
^[E |
Возврат каретки и перевод строки. |
^[Н |
Точка табуляции устанавливается в текущей колонке. |
^[7 |
Сохраняются позиция и атрибуты курсора. |
^[8 |
Восстанавливаются позиция и атрибуты курсора. |
^[> |
Переводит малую клавиатуру в числовой режим (стандартный). |
^[= |
Переводит малую клавиатуру в режим приложения (она ведет себя как функциональные клавиши DEC VT102). |
^[с |
Сбрасывает все терминальные установки, которые могут быть получены через управляющие символы и последовательности. |
^[Z |
Запрашивается идентификатор терминала. Ответом будет ^[[?6с ; это говорит о том, что консоль точно эмулирует DEC VT102 (она включает в себя расширенный набор возможностей DEC VT102). |
Сохранение и восстановление позиции курсора (^[7
и ^[8
) не осуществляется в стеке. Если вы делаете два сохранения в одной строке, то вторая сохраняемая позиция перезаписывает первую. Наоборот, один раз сохранив позицию курсора, вы можете восстанавливать ее столько раз, сколько нужно. Всякий раз курсор будет возвращаться в одно и то же расположение. При восстановлении положения курсора также восстанавливаются атрибуты изображения курсора, текущий набор символов, описания набора символов (все это будет описываться далее в данной главе).
Позиция курсора задается в показателях адреса знакоместа, парой чисел x,y, которая обозначает одну позицию на экране. Нумерация адресов знакомест на большинстве терминалов, включая консоль Linux, не начинается с нуля, как это принято в обычной компьютерной практике. Верхний левый символ на экране является началом отсчета и получает адрес как знакоместо 1,1.
Обратите внимание на то, что управляющие символы могут включаться внутри управляющей последовательности. Например, ^[^G8
сначала выдает тональный сигнал, а затем восстанавливает позицию и атрибуты курсора. Последовательность ^[^X8
просто печатает число 8.
- Управляющие конструкции
- 13.7.1 Важные управляющие последовательности
- Параметры, управляющие разрывом строк
- 21.3.4. Составные управляющие последовательности
- 3.2.2. Управляющие последовательности в строковых литералах
- 21.3.1. Управляющие символы
- Управляющие последовательности
- Модуль PT4TaskMakerNET: форматирование текста заданий
- 3.2. Текст