Управляющие последовательности | Описание |
---|---|
^[М | Курсор перемещается вверх на одну строку в текущей колонке; если необходимо, то экран прокручивается вниз (обратный перевод строки). |
^[D | Курсор перемещается вниз на одну строку в текущей колонке; если необходимо, то экран прокручивается вверх (перевод строки) |
^[E | Возврат каретки и перевод строки. |
^[Н | Точка табуляции устанавливается в текущей колонке. |
^[7 | Сохраняются позиция и атрибуты курсора. |
^[8 | Восстанавливаются позиция и атрибуты курсора. |
^[> | Переводит малую клавиатуру в числовой режим (стандартный). |
^[= | Переводит малую клавиатуру в режим приложения (она ведет себя как функциональные клавиши DEC VT102). |
^[с | Сбрасывает все терминальные установки, которые могут быть получены через управляющие символы и последовательности. |
^[Z | Запрашивается идентификатор терминала. Ответом будет ^[[?6с ; это говорит о том, что консоль точно эмулирует DEC VT102 (она включает в себя расширенный набор возможностей DEC VT102). |
Сохранение и восстановление позиции курсора (^[7
и ^[8
) не осуществляется в стеке. Если вы делаете два сохранения в одной строке, то вторая сохраняемая позиция перезаписывает первую. Наоборот, один раз сохранив позицию курсора, вы можете восстанавливать ее столько раз, сколько нужно. Всякий раз курсор будет возвращаться в одно и то же расположение. При восстановлении положения курсора также восстанавливаются атрибуты изображения курсора, текущий набор символов, описания набора символов (все это будет описываться далее в данной главе).
Позиция курсора задается в показателях
Обратите внимание на то, что управляющие символы могут включаться внутри управляющей последовательности. Например, ^[^G8
сначала выдает тональный сигнал, а затем восстанавливает позицию и атрибуты курсора. Последовательность ^[^X8
просто печатает число 8.
21.3.3. Тестирование последовательностей
Для проверки большинства последовательностей вам нужно просто войти в виртуальную консоль и запустить cat
. Введите последовательности, которые вы хотите протестировать, и увидите результаты. Для ^[
нажмите клавишу
Терминалы отвечают на команды вроде идентификации терминала ^[Z
или команды CSIn
, рассматриваемые позже, управляющим последовательностями, которые на терминалах не отображаются. В тех случаях, когда вы хотите увидеть подобное взаимодействие, просто запустите
cat > /tmp/somefile
Затем введите команды, после которых укажите возврат каретки и ^D
. Используйте less
, vi
, Emacs или какую-то другую программу, которая может обрабатывать произвольные символы для того, чтобы прочитать /tmp/somefile
, где непосредственно после напечатанных вами последовательностей вы найдете ответы на них.
21.3.4. Составные управляющие последовательности
Пять двухсимвольных управляющих последовательностей (которые показаны в табл. 21.3) фактически являются префиксами более длинных и сложных последовательностей. Рассмотрим каждую из них по очереди.
Таблица 21.3. Составные последовательность управления консолью