Unix Man (Справочное руководство)

Снять проститутку. |

TERMCAP(7) - часть 5


Очень важным здесь является то, что движения местного курсора, закодированные в termcap, являются неопределенными в левом и верхнем углах терминала CRT. Редактор никогда не предпринимает попытки осуществить backspace у левого угла, также он не будет продвигаться вверх. Редактор считает, что подача низа экрана вызовет подъем экрана вверх, а возможность am говорит, находится ли курсор в правильном месте экрана. Если терминал имеет включаемые избирательные автоматические поля, файл termcap, как правило, считает, что он включен (т.е. am).

Эти возможности достаточны, чтобы описать печатающий и 'glass-tty' терминалы. Так модель 33 телетайпа описывается как

t3|33|tty33:co#72:os

а Lear Siegler ADM-3 описывается как

cl|adm3|3|lsi adm3:am:bs:cl=^Z:li#24:co#80

Адресация курсора


Адресация курсора в терминале описывается строковой возможностью cm. Эта возможность использует printf(2) как переходы (такие как %x) в ней. Это аналогично кодированию текущей строки или расположения страницы, в то время как другие символы проходят неизмененными. Если строка cm считается функцией, ее аргументы, строки и позиции, к которым желательно двигаться, а % кодировки имеет следующее значения:

%d

%2

%3

%

%+x

%>xy

%r

%i

%%

%n

%B

%D

заменяется позицией пересечения строки/колонки, начальный адрес 0
как %2d - 2 цифровых поля
как %3d - 3 цифровых поля
как printf(S) %c
добавляет х к значению, затем %
если значение>x, добавляет y, не выводится
устанавливает обратный порядок строки и колонки(для начальной позиции 1)
обратный порядок строки и колонки, не выводится
увеличивает позицию пересечения строки/колонки (начальная позиция 1)
исключающее или ряд и колонка с адресом 0140 (DM2500)
BCD(16*(x/10))+(x%10), не выводится
Обратное кодирование (x-2*(x-2*(x%16)), не выводится (Delta Data).

Рассмотрим HP2645, который, чтобы добраться до ряда 3 и позиции 12 должен быть послан \E&a12c03Y с задержкой в 6миллисекунд. Отметим, что порядок рядов и позиций здесь переставлен, и что ряд и позиция печатаются как две цифры. Таким образом, возможность cm равна 'cm=6\E&%r%2c%2Y'. Чтобы послать текущий ряд и позицию для Microterm ACT-IV необходимо поставить перед ними ^T, причем ряд и позиция просто кодируются в двоичном коде, 'cm=^T%.%'. Терминалы, которые используют %, должны иметь возможность применить backspace к курсору(bs или bc), и сдвинуть курсор вверх на одну строку на экране (up представлен ниже). Это необходимо, так как не всегда безопасно передавать \t, \n ^D и \r, так как система может их изменить или не учесть.

Последним примером является LSI ADM-3a, который использует сдвиг ряда и позиции с помощью пустого символа, таким образом, 'cm=\E=%+%+'.

Движение курсора





Начало  Назад  Вперед