Чтение онлайн

на главную - закладки

Жанры

Разработка приложений в среде Linux. Второе издание

Троан Эрик В.

Шрифт:

Пять двухсимвольных управляющих последовательностей (которые показаны в табл. 21.3) фактически являются префиксами более длинных и сложных последовательностей. Рассмотрим каждую из них по очереди.

Таблица 21.3. Составные последовательность управления консолью

Управляющие последовательности Описание
^[[
Начинается последовательность CSI (
ALT-^[
является синонимом).
^[]
Начинается последовательность управления палитрой.
^[%
Начинается последовательность UTF (UTF-8 wide-character Unicode).
^[(
Выбирается шрифт, соответствующий набору символов
G0
.
^[)
Выбирается шрифт, соответствующий набору символов
G1
.
^[#8
Внутренняя тестовая последовательность DEC; заполняет экран символами Е.

Последовательности CSI имеют три или четыре части.

1. 

^[[
запускает последовательность CSI, переводя терминал в режим CSI.

2. Только для последовательностей

h
и
l
вы можете добавлять символ
?
, что позволит устанавливать или очищать собственные режимы DEC (см. табл. 21.9).

3. Предусматривается не более чем 16 параметров. Параметры — это десятичные числа, разделенные символами

;
. Например,
1;23;45
представляет собой список из трех параметров: 1, 23 и 45. (Если после прочтения 16 параметров обнаруживается разделитель
;
, то последовательность CSI немедленно прерывает работу и терминал переходит в нормальный режим, распечатывая оставшуюся часть последовательности).

4. Командный символ прерывает последовательность и определяет способ интерпретации параметров, которые терминал только что обнаружил.

На параметры обычно ссылаются как на некоторые переменные от par1 до par16. Если вы не установили параметр явно, то его значение автоматически приравнивается к нулю или единице, в зависимости от смысла операции. Командные символы CSI перечислены в табл. 21.4.

Таблица 21.4. Последовательности CSI

Символ Описание
h
Устанавливает режим; см. табл. 21.8.
l
Очищает режим; см. табл. 21.8.
n
par1=5 Отчет о состоянии: терминал отвечает
^[[0n
, что означает "OK" par1=6 Отчет о положении курсора: терминал отвечает
^[[x;yR
, где у указывается относительно начала отсчета, а не области (если выбран режим начала отсчета, смотрите табл. 21.9)
G
или
`
Устанавливает горизонтальное положение курсора в колонке par1.
A
Передвигает вертикальную позицию курсора вверх на par1 строк.
В или e
Передвигает вертикальную позицию курсора вниз на par1 строк.
С
или
a
Передвигает горизонтальную позицию курсора вправо на par1 колонок.
D
Передвигает горизонтальную позицию курсора влево на par1 колонок.
E
Передвигает курсор в начало линии и ниже на par1 строк (1 по умолчанию).
F
Передвигает курсор в начало линии и выше на par1 строк (1 по умолчанию).
d
Устанавливает вертикальное положение курсора в строке par1.
H
или
f
Устанавливает вертикальное положение курсора в строке par1 и горизонтальное положение курсора в колонке par2 (по умолчанию оба параметра равны нулю, перемещая курсор в начало отсчета).
J
par1=0 Очищает экран от курсора до конца дисплея par1=1 Очищает экран от начала отсчета до курсора par1=2 Очищает экран полностью
K
par1=0 Очищает экран от курсора до конца строки par1=1 Очищает экран от начала строки до курсора par1=2 Очищает строку полностью
L
Вставляет par1 строк ниже текущей строки.
М
Удаляет par1 строк, начиная с текущей строки.
P
Удаляет par1 символов, начиная с текущей позиции, передвигая остальную часть строки влево.
с
Отвечает
^[[?6c
(синоним
^[Z
).
g
par1=0 Удаляет точку табуляции в текущем столбце (по умолчанию) par1=3 Удаляет все точки табуляции
m
Последовательность изображения символов; смотрите табл. 21.7.
q
Включает клавиатурный LED par1 и отключает остальные (0 выключает все).
r
Устанавливает область прокручивания (применяется только в режиме начала отсчета DEC; см. табл. 21.9): par1 Первая строка области, должна находиться в пределах от 1 (по умолчанию) до par2–1 par2 Последняя строка области, должна находиться в пределах от par1+1 и нижней строкой (по умолчанию)
s
Сохраняет позицию и атрибуты курсора (синоним
^[7
).
u
Восстанавливает позицию и атрибуты курсора (синоним
^[8
).
X
Стирает par1 символов (до конца текущей строки).
@
Стирает par1 символов (до конца текущей строки).
]
Последовательности setterm; смотрите табл. 21.10.

Несколько последовательностей принимают аргументы, описывающие цвета. Во всех таких последовательностях используется одно и то же соответствие между числами и цветами, приведенное в табл. 21.5. Последовательности, которые указывают цвета фона, допускают номера цветов только от 0 до 7. Те последовательности, которые задают цвет переднего плана, принимают числа от 8 до 15 (они описывают насыщенные или яркие цвета).

Таблица 21.5. Коды цветов

Число Цвет Число Яркий цвет
0 Черный 8 Темно-серый
1 Красный 9 Светло-красный
2 Зеленый 10 Светло-зеленый
3 Коричневый 11 Желтый
4 Голубой 12 Светло-голубой
5 Пурпурный 13 Ярко-красный
6 Синий 14 Светло-синий
7 Серый 15 Белый

Указанные цвета фактически представляют собой смещения — названия цветов в таблице описывают стандартные цвета, которые хранятся по данным смещениям. Однако вы можете изменять эти цвета при помощи последовательности установки палитры. Например, последовательность

^[]P
определяет отдельный компонент палитры; последовательность
^[]R
восстанавливает стандартную системную палитру. Компоненты палитры определяются семью шестнадцатеричными цифрами, введенными после
^[]P
, как описано в табл. 21.6. Таким образом, для каждого элемента палитры вы можете предоставить 24-битовое определение цвета с восемью битами для каждого цвета.

Таблица 21.6. Компоненты цветовой палитры

Число Что определяет
1 Элемент палитры, который нужно переопределить.
2*16+3 Значение красного компонента элемента палитры.
4*16+5 Значение зеленого компонента элемента палитры.
6*16+7 Значение синего компонента элемента палитры.

Последовательности изображения символов, указанные командами

CSIm
, могут принимать в произвольном порядке до 16 параметров, перечисленных в табл. 21.7. Параметры применяются к терминалу в том порядке, в котором они передаются. Таким образом, если
0
(установка стандартного изображения) сопровождается
1
(для установки полужирного шрифта), то результатом будет полужирный символ (а не мерцающее негативное видеоизображение) или подчеркнутый символ в зависимости от предыдущих установок изображения.

Таблица 21.7. Параметры изображения символов

par Описание
0 Стандартное изображение: средняя интенсивность, без подчеркивания, без негативного изображения, без мерцания, с обычной цветовой схемой (белое на черном, если не установлен другой способ при помощи последовательности сохранения setterm
^[[]8
).
1 Интенсивность — насыщенная.
2 Интенсивность — матовая.
4 Включается подчеркивание.
5 Включается мерцание.
7 Включается негативное видеоизображение.
10 Выбирается исходный шрифт (ISO latin 1), при этом не отображаются управляющие символы, сбрасывает бит 8 в выводе.
11 Выбирается альтернативный шрифт (IBM Codepage 437), при этом управляющие символы отображаются как графические данные, сбрасывает бит 8 в выводе.
12 Выбирается альтернативный шрифт (IBM Codepage 437), при этом управляющие символы отображаются как графические данные, оставляет бит 8 в выводе.
21 22 Интенсивность — стандартная.
24 Отключается подчеркивание.
25 Отключается мерцание.
27 Отключается негативное видеоизображение.
30-37 Устанавливается цвет переднего плана par||30; см. табл. 21.5.
38 Включается подчеркивание и используется стандартный цвет текста.
39 Отключается подчеркивание и используется стандартный цвет текста.
40-47 Устанавливается цвет фона par||40; см. табл. 21.5.
49 Используется стандартный цвет фона.

Некоторое отношение к последовательностям изображения символов имеют последовательности режимов. Существует два типа режимов: режимы ANSI и внутренние режимы DEC. Последовательность

СSIh
устанавливает режимы ANSI, описанные в табл. 21.8; последовательность
CSIl
сбрасывает их. В последовательность может входить более одного параметра. Последовательность
CSI?h
определяет внутренние режимы DEC, перечисленные в табл. 21.9; последовательность
CSI?l
сбрасывает их. Также может приниматься более одного параметра.

Таблица 21.8. Режимы ANSI

par Описание
3 Отображаются управляющие символы.
4 Режим вставки.
20 Режим CRLF (при получении символа новой строки выполняется возврат каретки).

Таблица 21.9. Внутренние режимы DEC

par Описание
1 Клавиши управления курсором работают как клавиши приложения; в режиме приложения к ним добавляется префикс
^[O
вместо обычного
^[[
.
3 На данный момент не реализован; в будущем предназначен для переключения между режимами 80 и 132 колонки.
5 Весь экран переводится в режим негативного изображения.
6 Устанавливается режим начала отсчета DEC, при котором принимаются области прокрутки; перемещается в начало отсчета (текущей области прокрутки, если она задана).
7 Устанавливается режим автоматического перехода на новую строку (по умолчанию), при котором продолжается ввод текста с новой строки, когда курсор достигает конца текущей строки. Если данный режим выключен, то лишние символы печатаются поверх самого правого символа текущей строки.
8 Клавиатура переводится в режим повторения символов (включен по умолчанию).
9 Режим отчета мыши 1 (поддержка может предоставляться внешней программой).
25 Курсор становится видимым (включен по умолчанию).
1000 Режим отчета мыши 2 (поддержка может предоставляться внешней программой).
Поделиться:
Популярные книги

Горькие ягодки

Вайз Мариэлла
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Горькие ягодки

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Черный Маг Императора 6

Герда Александр
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
7.00
рейтинг книги
Черный Маг Императора 6

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Огни Аль-Тура. Завоеванная

Макушева Магда
4. Эйнар
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Огни Аль-Тура. Завоеванная

Законы Рода. Том 7

Flow Ascold
7. Граф Берестьев
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Законы Рода. Том 7

Жандарм 2

Семин Никита
2. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 2

Измена. Мой заклятый дракон

Марлин Юлия
Любовные романы:
любовно-фантастические романы
7.50
рейтинг книги
Измена. Мой заклятый дракон

Его темная целительница

Крааш Кира
2. Любовь среди туманов
Фантастика:
фэнтези
5.75
рейтинг книги
Его темная целительница

Кодекс Охотника. Книга V

Винокуров Юрий
5. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.50
рейтинг книги
Кодекс Охотника. Книга V

Неудержимый. Книга XVI

Боярский Андрей
16. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVI

Жена по ошибке

Ардова Алиса
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Жена по ошибке

Real-Rpg. Город гоблинов

Жгулёв Пётр Николаевич
1. Real-Rpg
Фантастика:
фэнтези
7.81
рейтинг книги
Real-Rpg. Город гоблинов

Венецианский купец

Распопов Дмитрий Викторович
1. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
7.31
рейтинг книги
Венецианский купец