Книга: Разработка приложений в среде 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.

Оглавление книги


Генерация: 0.096. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз