Server for Information Technologies Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер содержит море(!) аналитической информации CIT Forum CD-ROM

TERMCAP(7)

НАЗВАНИЕ
termcap - Возможности базы данных терминала.

ОПИСАНИЕ
Файл /etc/termcap - терминалы, описывающие базу данных. Эта база данных используется командами, такими как vi(1), vsh(1), Lyrix, и пакетами программ, curses(2). Терминалы описываются в termcap путем сообщения множества возможностей и описания выполняемых операций. Запросы заполнения и последовательности инициализации включены в termcap.

Входы в termcap состоят из областей, разделенных ':'. Первый ввод для каждого терминала дает имена, знакомые терминлу, разделенные вертикальными черточками (:). Для совместимости со старыми системами первое имя всегда на 2 символа длинее. Второе данное имя имеет более общую аббривиатуру для терминала, и имя используется с помощью vi(1) и ex(1). Последнему имени следует быть большим именем, полностью идентифицирующим терминал. Только последнее имя может содержать в себе пробелы для читабельности.

Возможности (включающие расширения XENIX).
Ниже представлен список возможностей, определяемых для данного терминала. В этом списке, (Р) указывает, какое может быть определено наполнение, а (Р*) указывает,что наполнение может быть основано на числе задействованных строк. Вид возможности и поля наполнения подробно описаны в следующем разделе "Виды возможностей".

Коды, начинающиеся с прописных букв (за исключением СС), обозначают расширения XENIX. Они включаются в дополнение к стандартным кодам и используютя одной или более программами применений. Также как в случае стандартных входов, не все режимы поддерживаются всеми применениями или терминалами. Некоторые из этих входов ссылаются на особые выходные свойства терминала (такое как GS для "графического запуска"). Другие описывают последовательности символов, посылаемых ключами, появляющимися на клавиатуре (например, PU для ключа PageUp). Существуют также входы, используемые для предания определенных значений другим ключам (или сочетаниям ключей) для использования в частной программе матобеспечения. Ряд возможностей расширения XENIX имеет аналогичную функцию со стандартными возможностями. Они используются для переопределения особых ключей (например, использование функциональных ключей, как ключей стрелок). Возможности расширения включаются в файл /etc/termcap по мере того, как их затребывают некоторые утилиты XENIX (например vsh(1)). Наиболее часто употребляемые возможности расширения более подробно описаны в разделе "Расширения XENIX".

ИмяТипPad?Описание
aestr(P)Закончить альтернативный набор символов
alstr(P*)Добавить новую чистую строку
ambool Терминал имеет автоматические поля
asstr(P)Начать альтернативный набор символов
bcstr Backspace, если не ^H
bsbool Можно backspace c ^H
btstr(P)Обратный табулятор
bwbool(P)Переходы по backspace c позиции 0 на последнюю
CCstr Командный символ в прототипе, если
cdstr(P*)Очистить до конца терминала
cestr(P)Очистить до конца строки
CFstr Курсор из
chstr(P)Как cm, но только горизонтальное движение, строка остается такой же
CLstr Посылается с помощью ключа CHAR LEFT
clstr(P*)Очистить экран
cmstr(P)Движение курсора
conum Номер позиции строки
COstr Курсор на
crstr(P*)Вернуть каретку (по умолчанию ^M)
csstr(P)Изменить область просматривания (vt100), как cm
cvstr(P)Как ch, но только по вертикали
CWstr Посылается с помощью клавиши CHANGE WINDOW
dabool Дисплей может сохраняться выше
DAbool Удалить атрибутивную строку
dbbool Дисплей может быть сохранен ниже
dBnum Необходимое количество миллисекунд bs задержки
dCnum Необходимое количество миллисекунд cr задержки
dcstr(P*)Удалить символ
dFnum Необходимое количество миллисекунд ff задержки
dlstr(P*)Удалить строку
dmstr Удалить режим (ввода)
dNnum Необходимое количество миллисекунд nl задержки
dostr Спуститься на одну строку
dTnum Необходимое количество миллисекунд tab задержки
edstr Закончить режим удаления
eistr Закончить режим вставки; дается ':ei=:', если ic
ENstr Посылается ключем END
eobool Можно удалить лишние удары, вместо них пробелы
ffstr(P*)Выброс документальной копии страницы терминала (по умолчанию ^L)
G1str Верхний правый (1ый квадрант) угловой символ
G2str Верхний левый (2ой квадрант) угловой символ
G3str Нижний левый (3ий квадрант) угловой символ
G4str Нижний првый (4ый квадрант) угловой символ
GCstr Центрирует графический символ (аналогично +)
GDstr Символ нижнего кармана
GEstr Конец графического режима
GGnum Количество символов, забираемое GS и GE
GHstr Горизонтальный штриховой символ
GLstr Символ левого кармана
GRstr Символ правого кармана
GSstr Начало графического режима
GUstr Символ верхнего кармана
MPstr Многократная инициализация строки
MRstr Многократный сброс строки
GVstr Вертикальный штриховой символ
hcbool Терминал документальных копий
hdstr На полстроки вниз (прогонка на 1/2 вперед)
HMstr Посылается клавишей HOME (если нет kh)
hostr Курсор в начало (если нет cm)
hustr Полстроки вверх (прогонка на 1/2 назад)
hzstr Hazeltine; не может печатать ~'
icstr(P)Символ вставки
ifstr Имя файла, содержащее is
imstr Режим вставки (вход); дается ':im=', если ic
inbool Режим вставки различает нули на дисплее
ipstr(P*)Вспомогательный символ вставки после вставленного символа
isstr Строка инициализации терминала
k0-k9str Посылается другими функциональными клавишами 0-9
kbstr Посылается клавишей backspace
kdstr Посылается нижней клавишей управления курсором
kestr Выход из режима 'keypad transmit'
khstr Посылается клавишей HOME
klstr Посылается левой клавишей управления курсором
knnum Количество 'других' ключей
kostr Вводы termcap для других нефункциональных клавиш
krstr Посылается правой клавишей управления курсором
ksstr Установить терминал в режим 'keypad transmit'
kustr Посылается верхней клавишей управления курсором
10-19str Метки на 'других' функциональных клавишах
LDstr Посылается клавишей удаления строки
LFstr Посылается клавишей line feed
linum Количество строк на экране или странице
llstr Последняя строка, первая колонка (если не cm)
mastr Отображение клавиши управления курсором, используемое vi только версией 2
mibool Безопасно для движения, пока в режиме вставки
mlstr Замок памяти на курсоре выше
MPstr Многократная инициализация строки
MRstr Многократный сброс строки
msbool По желанию переход в режим stand out
mustr Нет замка памяти (закрыть замок памяти)
ncbool Неправильно возвращение рабочей каретки (DM2500,H2000)
ndstr Неразрушенная область (курсор вправо)
nlstr(P*)Символ новой строки (по умолчанию )
nsbool Терминал - CRT, но не прoсматривает
NUstr Посылается клавишей NEXT UNLOCKED CELL
osbool Терминал набирает лишние удары (на клавиатуре)
pcstr Символ вспомогательной клавиатуры (лучше нуля)
PDstr Посылается клавишей PAGE DOWN
PNstr Начало местной печати
PSstr Конец местной печати
ptbool Имеет символы табуляции аппаратуры (может понадобиться для установки is)
PUstr Посылается клавишей PAGE UP
RCstr Посылается клавишей RECALC
RFstr Посылается клавишей TOGLE REFERENCE
GDstr Символ нижнего кармана
GEstr Конец графического режима
GGnum Количество символов, забираемое GS и GE
GHstr Горизонтальный штриховой символ
GLstr Символ левого кармана
GRstr Символ правого кармана
GSstr Начало графического режима
GUstr Символ верхнего кармана
MPstr Многократная инициализация строки
MRstr Многократный сброс строки
GVstr Вертикальный штриховой символ
RTstr Посылается клавишей RETURN
sestr Закончить режим stand out
sfstr(P)Просмотр вперед
sgnum Количество пробелов, разрешенных so или se
sostr Начать режим stand out
srstr(P)Обратный просмотр (слова наоборот)
tastr(P)Символ табуляции (отличный от ^I 0 или наполнения)
tcstr Ввод подобного терминала - должен осуществляться позже
testr Строка для окончания программ, использующая cm
tistr Строка для начала работы программ, использующая cm
ucstr Подчеркнуть один символ и двигать мимо него
uestr Закончить режим подчеркивания
ugnum Количество пробелов, разрешенных us или ue
ulbool Терминал подчеркивает четные, хотя не делает лишних ударов
upstr Подняться на строку (курсор вверх)
UPstr Посылается клавишей up-arrow (альтернативно ku)
usstr Включить режим подчеркивания
vbstr Очевидный звонок (не может двигаться курсор)
vestr Последовательность для выключения режима open/visual
vsstr Последовательность для выключения режима open/visual
WLstr Посылается клавишей WORD LEFT
WRstr Посылается клавишей WORD RIGHT
xbbool Beehive (f1=escape, f2=ctrl C)
xnbool Новая строка опускается после перехода (Concept)
xrbool Возвращает действия аналогично ce (Della Data)
xsbool Стандартный выход не убирается при записи над ним (HP 264?)
xtbool Символы табуляции разрушены, магический символ so (Teleray 1061)

Вход выборки
Следующий вход описывает Concept-100 и является одним из наиболее сложных входов в файле termcap. (Этот конкретный ввод Concept устарел и используется только в качестве примера.)

 c1|c10|concept100:is=EUEfE7E5E8E1ENHEKE200Eo&
200::al=3*E^R:am:bs:cd=16*E^C:ce=16E^S:cl=2*^L::cm=|Ea%+)
+:co#80:dc=16E^B::ei=E200:eo:im=E^P:in:ip=16*:li#24:mi:nd
=E=::se=EdEe:so=EDEE:so=EDEE:ta=8	:ul:up=E;:vb=EkEk:xn:

Входы могут продолжаться на множество строк с помощью Backslash() в качестве последнего символа строки. Пустые места могут включаться для удобства считывания между последнем полем строки и между первым полем следующего. Возможности в termcap трех видов: булевские возможности, указывающие, что терминал имеет некоторое свойство, числовые возможности, дающие размер терминала или размер определенных задержек, и строковые возможности, дающие последовательность, которая может быть использована для выполнения некоторых операций терминала.

Виды возможностей
Все возможности имеют два буквенных входа. Например, факт, что Concept имеет 'автоматические поля' (т.е. автоматический возврат и подачу бумаги, когда достигается конец строки) указывается возможностью am. Описание Concept включает am. За числовыми возможностями следует символ '#' и затем значение. Так co, который указывает число позиций в терминале, для Concept имеет значение '80'.

Наконец, строковые значащие возможности, такие как ce (очистить до конца последовательности строки) даются с помощью двух символьных кодов,'=', и затем строка , оканчивающаяся следующим ':'. В такой возможности может появиться задержка в миллисекундах после '=', и чтобы обеспечить эту задержку редактор посылает символы наполнения после остатка строки. Задержка может быть как целым числом, например, 20, так и целым числом, за которым следует '*', например '3*'. '*' указывает, что требуемое наполнение пропорционально числу строк, задействованных в операции, и заданная величина представляет собой требуемое наполнение на каждое задействование. Когда определяется '*', иногда бывает полезным задать задержку вида '3.5', чтобы задать задержку на единицу до десятых миллисекунды.

Для простого кодирования символов в строковых значащих возможностях обеспечивается ряд управляющих последовательностей. E отображается в символ ESCAPE, ^x отображается в ctrl-x для любого соответствующего х, а последовательности 2  f дают новую строку, return, tab, backspace и formfeed. Наконец, символы могут задаваться в виде трех восьмеричных цифр после знака , а символы ^ и могут быть представлены как ^ и \. Если необходимо поместить в возможность двоеточие (:), оно должно быть представлено в восьмеричном виде как 72. Если необходимо поместить в строковую возможность нулевой символ, он должен быть закодирован как 200. Программа, которая взаимодействует с termcap, использует С строки, отрезает старшие биты строки вывода, и так, что 200 будет выводится, как 00.

Подготовительное описание
Наиболее эффективным способом для подготовления терминального описания является описание подобного терминала в termcap и постепенно построение нового описания, используя частичное описание с ex для проверки правильности. Имейте в виду, что очень необычный терминал может проявлять недостаток в возможности файла termcap описать его. Чтобы проверить новое описание терминала, можно установить переменную среды TERMCAP, равную составному имени файла, содержащего описание, над котором вы работаете, и редактор будет смотреть туда скорее, чем в /etc/termcap. TERMCAP может также быть установлена на вход самой termcap, чтобы избежать считывания файла, когда стартуется редактор.

Базовые возможности
Число позиций в каждой строке для терминала задается числовой возможностью co. Если терминал типа CRT, число строк на экране задается возможностью li. Если терминал переходит к началу следующей строки, когда он достигает правого поля, у него должна быть возможность am. Способность терминала очищать свой экран, это задается с помощью строковой возможности cl. Если терминал может осуществлять backspace, он должен иметь возможность bs, если за backspace не идет символ, отличный от ^H; в этом случае следует расценивать этот символ, как строковую возможность bc. Если при этом не стирается предыдущая позиция, то должна иметься возможность os.

Очень важным здесь является то, что движения местного курсора, закодированные в 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заменяется позицией пересечения строки/колонки, начальный адрес 0
%2как %2d - 2 цифровых поля
%3как %3d - 3 цифровых поля
%как printf(S) %c
%+xдобавляет х к значению, затем %
%>xyесли значение>x, добавляет y, не выводится
%rустанавливает обратный порядок строки и колонки(для начальной позиции 1)
%iобратный порядок строки и колонки, не выводится
%%увеличивает позицию пересечения строки/колонки (начальная позиция 1)
%nисключающее или ряд и колонка с адресом 0140 (DM2500)
%BBCD(16*(x/10))+(x%10), не выводится
%DОбратное кодирование (x-2*(x-2*(x%16)), не выводится (Delta Data).

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

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

Движение курсора
Если терминал может перемещать курсор на одну позицию вправо, оставляя символ текущей позиции неизменным, то последовательность следует задавать как nd ( неращрушающей). Если он может перемещать курсор на строку вверх на экране в этой же колонке, то задается последовательность up. Если терминал не имеет курсора адресации, но может возвращать курсор на начальную позицию (самый верхний левый угол экрана), то это может задаваться как ho; аналогично, быстрый способ попасть курсору в самый нижний левый угол экрана - задается как ll; это можно получить включением up из начальной позиции, редактор никогда не выполняет это сам (если ll не выполнит), так как он имеет предписания о результате движения из начальной позиции.

Очищение области
Если терминал может очищать остаток строки, начиная от текущей позиции, оставляя курсор на то же месте, надо задать ce. Если терминал может очищать до конца дисплея от текущей позиции, то следует задавать cd. cd определяется только из первой колонки строки.

Вставка/уничтожение строки
Если терминал может открыть первую пустую строку перед строкой, на которой находится курсор, то это может задавться al. Отметим, что это выполнимо только из первой колонки строки. Курсор должен появиться на новой пустой строке. Если терминал должен уничтожать строку, на которой расположен курсор, то это задается dl; это выполнимо только в первой позиции строки, которая должна быть уничтожена.Если терминал может сохранять дисплейную память над, то следует задавать средство da; если дисплейная память задается ниже, то db. Это позволяет редактору знать, что уничтожение строки на экране может создавать непустые строки выше или что обратное просматривание с sb может создавать ниже непустые строки.

Вставка/стирание символа
Имеется два основных вида разумных терминалов, что касается вставки/стирания символа, которые могут быть описаны с помощью termcap. Наиболее общие операции вставки/стирания символов различаются только тем, что оставляют символы в текущем состоянии или сдвигают их в конец или начало строки. Другие терминалы, такие как Concept 100 и Perkin Elmer Owl, делают различие между напечатыванием и ненапечатыванием пробелов на экране, помещая на место вставляемого или уничтожаемого символа ненапечатанный пробел, который также высвечивается или расширяет их до двух пробелов. Вы можете отличать тип терминала, который вы имеете, путем чистки экрана, затем печатая текст, разделенный движением курсора.

Печатание abc def использует локальные перемещения курсора (не позиции) между abc и def. Тогда курсор помещается перед abc, и терминал устанавливается в режим вставки. Если печатание символов вызывает остаток строки к жесткому сдвигу, и символы отпадают, тогда ваш терминал не делает различия между пробелами и ненапечатанными пробелами порциями. Если "abc" сдвигается к def, которые потом вместе начинают двигаться к концу и затем на следующую вставленную строку, вы имеете второй тип терминала и должны использовать средство in, которое устанавливает для вставки нуль. Мы не знакомы с терминалами, у которых режим вставки не может быть описан ни в одном из этих двух классов.

Редактор может описывать как терминалы, которые имеют режим вставки, так и терминалы, посылающие простую последовательность, чтобы открыть пустую позицию в текущей строке. Чтобы войти в режим вставки, используйте последовательность im или присвойте ей пустое значение, если ваш терминал использует последовательность для вставки нулевой позиции. Чтобы выйти из режима вставки используется последовательность ei (выполните это с помощью нулевого значения, если вы также приписали его im). Теперь определим ic как последовательность, которая должна быть послана непосредственно перед посылкой символа, который должен быть вставлен. Большинство терминалов с настоящим режимом вставки не поддерживают ic, терминалы, которые посылают последовательность для открытия позиции экрана, должны ее выдавать. (Режим вставки предпочтительнее последовательности откытия позиции экрана, если ваш терминал имеет и то , и другое). Если требуется символ для последующего заполнения, задвайте его, как количество миллисекунд в ip (параметр строки). Любая другая последовательность, которую может понадобиться послать после вставки одного символа, может тоже задаваться в ip.

Иногда необходимо организовывать цикл в режиме вставки для удаления символов в одной строке (то есть, если имеется символ табуляции после вставляемой позиции). Если ваш терминал допускает перемещение в режиме вставки, вы можете задать средство mi для ускорения вставки в этом случае. Опускание mi будет влиять только на скорость. Некоторые терминалы (а именно Datamedia) не должны использовать mi из-за способа работы режима вставки.

Наконец, вы можете определить режим удаления символа заданием dm и ed для входа и выхода в режим удаления, idc для удаления одного символа в режиме удаления.

Повышенная яркость, подчеркивание и видимые сигналы
Если ваш терминал имеет последовательности на вход и выход в режим standout, они могут задаваться как so и se. Если существуют способы выделения изображения в standout (такие как инверсионное видео, мерцание или подчеркивание - половинная яркость обычно не допускается режимом standout, если только терминал не находится постоянно в режиме инверсионного видео), предпочтительным режимом является сам инверсионный видео. Допустимо, если хотя это может слегка спутать программы, этому нельзя помочь.

Коды для начала подчеркивания и конца подчеркивания могут задаваться как us, и ue соответственно. Если терминал имеет код подчеркивания текущего символа и сдвигает курсор на одну позицию вправо, такой как Microterm Mime, последовательность может задаваться как uc. (Если код подчеркивания не движет курсор вправо, определяйте код, так чтобы за ним следовал неразрушающий пробел.)

Если терминал обладает возможностью мерцания экрана для спокойного сообщения об ошибке (вместо звукового), последовательность может задаваться как vb; это не должно двигать курсор. Если терминал следует поместить в другой режим путем откытия и высвечивания ex, последовательность может задаваться как vs и ve, посылаемая в начале и в конце этих режимов соответственно. Это может быть использовано для изменения подчеркивания на курсор блока и обратно.

Если терминалу необходимо быть в специальном режиме во время выполнения программы, которая адресует курсор, коды входа и выхода в этот режим могут задаваться как ti и te. Это возникает для терминалов, подобных Concept c более, чем одной страницей памяти. Если терминал имеет только относительную адресацию памяти курсора, и не относительную адресацию курсора на экране, только одно окно размером с экран может быть фиксировано в терминале для правильной работы.

Если ваш терминал правильно генерирует подчеркнутые символы (без необходимости специальных кодов), даже если он не делает лишних ударов, вам нужно задать средство ul. Если повторные удары замещаются пробелами, это должно указываться определением eo.

Клавиатура
Если терминал имеет клавиатуру, которая передает коды при нажатии клавиш, эта информация должна быть задана. Отметим, что невозможно работать с терминалами, у которых клавиатура работает локально (это поддерживает, например, для несдигаемых клавиш HP 2621). Если клавиатура может быть установлена для передачи или не для передачи, то задавайте эти коды как ks и ke. В противном случае, клавиатура передает. Коды, посылаемые левой стрелкой, правой стрелкой, верхней и нижней стрелками и клавишей home, могут задаваться как kl, kr, ku, kd и kh. Если существуют функциональные клавиши, такие как f0, f1, ...,f9, коды, которые они посылают, могут задаваться как k0, k1,..., k9. Если эти клавиши имеют метки, отличные от принятых по умолчанию, от f0 до f9, метки могут задаваться как 2l0, l1,..., l9. Если несколько клавиш передают тот же самый код, который терминал ожидает от соответствующей функции, такие как очистить экран, 2х буквенный код termcap может быть задан в средстве ko, например, ':ko=cl,ll,sf,sb:', которое говорит о том, что терминал имеет клавиши стирания, помещения в исходное состояние, просмотрен вниз и вверх, которые передают то же самое, как cl, ll, sf и sb.

Вход ma используется для указания клавиш-стрелок, которые имеют один символ клавиш-стрелок. Это устарело, но все еще используется в версии 2 vi, которая должна выполняться на некоторых миникомпьютеров из-за увеличения памяти. Это поле излишне при наличии kl, kr, ku, kd и kh. Оно состоит из двухсимвольных групп. В каждой группе первый символ - это то, что клавиша-стрелка посылает, второй символ - соответствующая команда vi. Эти команды -h для kl, j для kd, k для ku, l для kr, и H для kh. Например, для Mime запись :ma=^Kj^Zk^Xl: указывает, что для клавишей стрелок указано следующее: левая (^H), нижняя (^K), верхняя (^Z) и правая (^X). (В Mime нет клавиши home).

Разное
Если терминал требует символ заполнения, отличный от нуля, он может задаваться как pc.

Если табуляция на экране требует заполнения, или если терминал использует символ табуляции, отличный от ^I, то последовательность может задаваться как ta.

Терминалы, которые не разрешают '~' для высвечивания, такие как Hazeltines, должны указывать hz. Datamedia терминалы, которые отражают возврат каретки и подачу строки для возврата каретки, и игнорируют последующую подачу листа, должы указываться nc. Ранние Concept терминалы, которые игнорируют подачу листа, немедленно после am перехода, должны задаваться как xn. Если требуется erase-eol для выхода из standout (вместо написания сверху), может задаваться как xs. Teleray терминалы, в которых символы табуляции заставляют все символы надвигаться на пробелы, должны задаваться как xt. Другие специфические проблемы терминалов могут быть решены посредством добавления других средств в виде xx.

Если руководящий символ для команд в терминале ( обычно символ escape) может установлен некоторой программой, то сам командный символ(ы) задается средством CC.

Другие средства включают is, строку инициализации для терминала и if, имя файла, содержащее длинные строки инициализации. Эти строки ожидаются для надлежащего стирания и помещения символа тябуляции на терминал. Если заданы оба средства, то is помещается перед if. Это полезно, если if /usr/lib/tabset/std, а is стирает в начале табуляцию.

Подобные терминалы
Если есть два подобных терминала, то один описывается также, как другой с некоторыми исключениями. Строковое средство tc может задаваться с именем подобного терминала. Это средство должно быть last, и комбинированная длина двух входов не должна превышать 1024. В то время как программы из termlib просматривают вход слева направо, и средства tc замещаются соответсвующим входом, то средство, заданное слева, замещает таковое в подобном терминале. Средство заканчивается xx@, где xx - данное средство. Например:

 hh|2621nl:ks@:ke@:tc=2621

Это определяет 2621nl, который не имеет средств ks и kl и не включает метки функциональных клавиш в видимом режиме. Это полезно для различных режимов терминала или предпочтительнее для различных пользователей.

Расширения XENIX
Средства.
Эта таблица приводит список расширений XENIX (прежде описанный) для средств termcap. Оно показывает, какие коды генерируют ввод информации с клавиатуры в программу, считывающую содержимое клавиатуры, и какие коды генерируют вывод информации из программы на экран.

ИмяВвод/выводОписание
CFstrКурсор из
CLstrПосылается с помощью клавиши CHAR LEFT
CLstrКурсор на
DAboolУдалить аттрибутивную строку
ENstrПосылается с помощью клавиши END
G1strВерхний правый (1ый квадрант) угловой символ
G2strВерхний левый (2ой квадрант) угловой символ
G3strНижний левый (3ий квадрант) угловой символ
G4strНижний правый (4ый квадрант) угловой символ
GCstrЦентрирует графический символ (аналогично +)
GDstrСимвол нижнего кармана
GEstrКонец графического режима
GGnumКоличество символов, забираемое GS и GE
GHstrГоризонтальный штриховой символ
GLstrСимвол левого кармана
GRstrСимвол правого кармана
GSstrНачало графического режима
GUstrСимвол верхнего кармана
GVstrВертикальный штриховой символ
HMstrПосылается с помощью клавиши HOME(если нет kh)
MPstrМногократная инициализация строки
MRstrМногократный сброс строки
NUstrПосылается клавишей NEXT UNLOCKED CELL
PDstrПосылается клавишей PAGE DOWN
PUstrПосылается клавишей PAGE UP
RCstrПосылается клавишей RECALC
RFstrПосылается клавишей TOGLE REFERENCE
RTstrПосылается клавишей RETURN
UPstrПосылается клавишей up-arrow (альтернативно ku)
WLstrПосылается клавишей WORD LEFT
WRstrПосылается клавишей WORD RIGHT

Движение курсора.
Некоторые прикладные программы используют специально редактирующие коды. CR и CL двигают курсор на один символ вправо и влево соответственно. WR и WL двигают курсор на одно слово вправо и влево соответственно. CW изменяет окна, если они используются в программе.

Некоторые программы отключают курсор. Это завершается использованием CF для выключения курсора и CO для включения в обратное состояние.

Графический режим.
Если терминал имеет графические средства, то этот режим может включаться и выключаться использованием GS и GE кодов. Некоторые терминалы генерируют графические символы со всех клавиш, находясь в графическом режиме (такие как Visual 50). Другие коды G определяют отдельные графические символы, которые доступны с помощью управляющих последовательностей. Эти символы присутсвуют на некоторых терминалах, как альтернативные наборы графических символов (не как в графическом режиме big-map). vt100 имеет доступ к таким альтернативным наборам графических символов, но не в графическом режиме big-map.

Кредит
Эта утилита была развита в Калифорнийском Университете Беркли и используется с позволения.

ПРИМЕЧАНИЯ
ex(1) допускает только 256 символов для строковых возможностей, и программы в termcap(2) не делают проверку при переполнении этого буфера. Тотальная длина единственного входа (исключая только переходы на новую строку) не могут превышать 1024.

Входы ma, vs и ve определяются в программе vi(1).

Не все программы поддерживают все входы. Имеются входы, которые не поддерживаются никакой программой.

Расширения XENIX termcap детально разъясняются в программной документации.

Обращайтесь к ручной странице screen(HW) для описания символьных последовательностей, используемых мониторным устройством в вашей определенной системе XENIX.

ФАЙЛЫ

/etc/termcap Файл, содержащий описания терминала

СМ. ТАКЖЕ
ex(1), curses(2), termcap(2), tset(1), vi(1), more(1), screen(HW)

Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT
Обновлено: 13.03.2015