Файл /etc/termcap - терминалы, описывающие базу данных. Эта база данных используется командами, такими как , , Lyrix, и пакетами программ, curses(2). Терминалы описываются в termcap путем сообщения множества возможностей и описания выполняемых операций. Запросы заполнения и последовательности инициализации включены в termcap.
Входы в termcap состоят из областей, разделенных ':'. Первый ввод для каждого терминала дает имена, знакомые терминлу, разделенные вертикальными черточками (:). Для совместимости со старыми системами первое имя всегда на 2 символа длинее. Второе данное имя имеет более общую аббривиатуру для терминала, и имя используется с помощью и . Последнему имени следует быть большим именем, полностью идентифицирующим терминал. Только последнее имя может содержать в себе пробелы для читабельности.
Возможности (включающие расширения XENIX).
Ниже представлен список возможностей, определяемых для данного терминала. В этом списке, (Р) указывает, какое может быть определено наполнение, а (Р*) указывает,что наполнение может быть основано на числе задействованных строк. Вид возможности и поля наполнения подробно описаны в следующем разделе "Виды возможностей".
Коды, начинающиеся с прописных букв (за исключением СС), обозначают расширения XENIX. Они включаются в дополнение к стандартным кодам и используютя одной или более программами применений. Также как в случае стандартных входов, не все режимы поддерживаются всеми применениями или терминалами. Некоторые из этих входов ссылаются на особые выходные свойства терминала (такое как GS для "графического запуска"). Другие описывают последовательности символов, посылаемых ключами, появляющимися на клавиатуре (например, PU для ключа PageUp). Существуют также входы, используемые для предания определенных значений другим ключам (или сочетаниям ключей) для использования в частной программе матобеспечения. Ряд возможностей расширения XENIX имеет аналогичную функцию со стандартными возможностями. Они используются для переопределения особых ключей (например, использование функциональных ключей, как ключей стрелок). Возможности расширения включаются в файл /etc/termcap по мере того, как их затребывают некоторые утилиты XENIX (например ). Наиболее часто употребляемые возможности расширения более подробно описаны в разделе "Расширения XENIX".
ИмяТипPad?Описание
ae
str
(P)
Закончить альтернативный набор символов
al
str
(P*)
Добавить новую чистую строку
am
bool
Терминал имеет автоматические поля
as
str
(P)
Начать альтернативный набор символов
bc
str
Backspace, если не ^H
bs
bool
Можно backspace c ^H
bt
str
(P)
Обратный табулятор
bw
bool
(P)
Переходы по backspace c позиции 0 на последнюю
CC
str
Командный символ в прототипе, если
cd
str
(P*)
Очистить до конца терминала
ce
str
(P)
Очистить до конца строки
CF
str
Курсор из
ch
str
(P)
Как cm, но только горизонтальное движение, строка остается такой же
CL
str
Посылается с помощью ключа CHAR LEFT
cl
str
(P*)
Очистить экран
cm
str
(P)
Движение курсора
co
num
Номер позиции строки
CO
str
Курсор на
cr
str
(P*)
Вернуть каретку (по умолчанию ^M)
cs
str
(P)
Изменить область просматривания (vt100), как cm
cv
str
(P)
Как ch, но только по вертикали
CW
str
Посылается с помощью клавиши CHANGE WINDOW
da
bool
Дисплей может сохраняться выше
DA
bool
Удалить атрибутивную строку
db
bool
Дисплей может быть сохранен ниже
dB
num
Необходимое количество миллисекунд bs задержки
dC
num
Необходимое количество миллисекунд cr задержки
dc
str
(P*)
Удалить символ
dF
num
Необходимое количество миллисекунд ff задержки
dl
str
(P*)
Удалить строку
dm
str
Удалить режим (ввода)
dN
num
Необходимое количество миллисекунд nl задержки
do
str
Спуститься на одну строку
dT
num
Необходимое количество миллисекунд tab задержки
ed
str
Закончить режим удаления
ei
str
Закончить режим вставки; дается ':ei=:', если ic
EN
str
Посылается ключем END
eo
bool
Можно удалить лишние удары, вместо них пробелы
ff
str
(P*)
Выброс документальной копии страницы терминала (по умолчанию ^L)
G1
str
Верхний правый (1ый квадрант) угловой символ
G2
str
Верхний левый (2ой квадрант) угловой символ
G3
str
Нижний левый (3ий квадрант) угловой символ
G4
str
Нижний првый (4ый квадрант) угловой символ
GC
str
Центрирует графический символ (аналогично +)
GD
str
Символ нижнего кармана
GE
str
Конец графического режима
GG
num
Количество символов, забираемое GS и GE
GH
str
Горизонтальный штриховой символ
GL
str
Символ левого кармана
GR
str
Символ правого кармана
GS
str
Начало графического режима
GU
str
Символ верхнего кармана
MP
str
Многократная инициализация строки
MR
str
Многократный сброс строки
GV
str
Вертикальный штриховой символ
hc
bool
Терминал документальных копий
hd
str
На полстроки вниз (прогонка на 1/2 вперед)
HM
str
Посылается клавишей HOME (если нет kh)
ho
str
Курсор в начало (если нет cm)
hu
str
Полстроки вверх (прогонка на 1/2 назад)
hz
str
Hazeltine; не может печатать ~'
ic
str
(P)
Символ вставки
if
str
Имя файла, содержащее is
im
str
Режим вставки (вход); дается ':im=', если ic
in
bool
Режим вставки различает нули на дисплее
ip
str
(P*)
Вспомогательный символ вставки после вставленного символа
is
str
Строка инициализации терминала
k0-k9
str
Посылается другими функциональными клавишами 0-9
kb
str
Посылается клавишей backspace
kd
str
Посылается нижней клавишей управления курсором
ke
str
Выход из режима 'keypad transmit'
kh
str
Посылается клавишей HOME
kl
str
Посылается левой клавишей управления курсором
kn
num
Количество 'других' ключей
ko
str
Вводы termcap для других нефункциональных клавиш
kr
str
Посылается правой клавишей управления курсором
ks
str
Установить терминал в режим 'keypad transmit'
ku
str
Посылается верхней клавишей управления курсором
10-19
str
Метки на 'других' функциональных клавишах
LD
str
Посылается клавишей удаления строки
LF
str
Посылается клавишей line feed
li
num
Количество строк на экране или странице
ll
str
Последняя строка, первая колонка (если не cm)
ma
str
Отображение клавиши управления курсором, используемое vi только версией 2
mi
bool
Безопасно для движения, пока в режиме вставки
ml
str
Замок памяти на курсоре выше
MP
str
Многократная инициализация строки
MR
str
Многократный сброс строки
ms
bool
По желанию переход в режим stand out
mu
str
Нет замка памяти (закрыть замок памяти)
nc
bool
Неправильно возвращение рабочей каретки (DM2500,H2000)
nd
str
Неразрушенная область (курсор вправо)
nl
str
(P*)
Символ новой строки (по умолчанию \n)
ns
bool
Терминал - CRT, но не прoсматривает
NU
str
Посылается клавишей NEXT UNLOCKED CELL
os
bool
Терминал набирает лишние удары (на клавиатуре)
pc
str
Символ вспомогательной клавиатуры (лучше нуля)
PD
str
Посылается клавишей PAGE DOWN
PN
str
Начало местной печати
PS
str
Конец местной печати
pt
bool
Имеет символы табуляции аппаратуры (может понадобиться для установки is)
PU
str
Посылается клавишей PAGE UP
RC
str
Посылается клавишей RECALC
RF
str
Посылается клавишей TOGLE REFERENCE
GD
str
Символ нижнего кармана
GE
str
Конец графического режима
GG
num
Количество символов, забираемое GS и GE
GH
str
Горизонтальный штриховой символ
GL
str
Символ левого кармана
GR
str
Символ правого кармана
GS
str
Начало графического режима
GU
str
Символ верхнего кармана
MP
str
Многократная инициализация строки
MR
str
Многократный сброс строки
GV
str
Вертикальный штриховой символ
RT
str
Посылается клавишей RETURN
se
str
Закончить режим stand out
sf
str
(P)
Просмотр вперед
sg
num
Количество пробелов, разрешенных so или se
so
str
Начать режим stand out
sr
str
(P)
Обратный просмотр (слова наоборот)
ta
str
(P)
Символ табуляции (отличный от ^I 0 или наполнения)
tc
str
Ввод подобного терминала - должен осуществляться позже
te
str
Строка для окончания программ, использующая cm
ti
str
Строка для начала работы программ, использующая cm
uc
str
Подчеркнуть один символ и двигать мимо него
ue
str
Закончить режим подчеркивания
ug
num
Количество пробелов, разрешенных us или ue
ul
bool
Терминал подчеркивает четные, хотя не делает лишних ударов
up
str
Подняться на строку (курсор вверх)
UP
str
Посылается клавишей up-arrow (альтернативно ku)
us
str
Включить режим подчеркивания
vb
str
Очевидный звонок (не может двигаться курсор)
ve
str
Последовательность для выключения режима open/visual
vs
str
Последовательность для выключения режима open/visual
WL
str
Посылается клавишей WORD LEFT
WR
str
Посылается клавишей WORD RIGHT
xb
bool
Beehive (f1=escape, f2=ctrl C)
xn
bool
Новая строка опускается после перехода (Concept)
xr
bool
Возвращает действия аналогично ce \r \n (Della Data)
xs
bool
Стандартный выход не убирается при записи над ним (HP 264?)
xt
bool
Символы табуляции разрушены, магический символ so (Teleray 1061)
<
/p>
Вход выборки
Следующий вход описывает Concept-100 и является одним из наиболее сложных входов в файле termcap. (Этот конкретный ввод Concept устарел и используется только в качестве примера.)
Входы могут продолжаться на множество строк с помощью Backslash(\) в качестве последнего символа строки. Пустые места могут включаться для удобства считывания между последнем полем строки и между первым полем следующего. Возможности в termcap трех видов: булевские возможности, указывающие, что терминал имеет некоторое свойство, числовые возможности, дающие размер терминала или размер определенных задержек, и строковые возможности, дающие последовательность, которая может быть использована для выполнения некоторых операций терминала.
Виды возможностей
Все возможности имеют два буквенных входа. Например, факт, что Concept имеет 'автоматические поля' (т.е. автоматический возврат и подачу бумаги, когда достигается конец строки) указывается возможностью am. Описание Concept включает am. За числовыми возможностями следует символ '#' и затем значение. Так co, который указывает число позиций в терминале, для Concept имеет значение '80'.
Наконец, строковые значащие возможности, такие как ce (очистить до конца последовательности строки) даются с помощью двух символьных кодов,'=', и затем строка , оканчивающаяся следующим ':'. В такой возможности может появиться задержка в миллисекундах после '=', и чтобы обеспечить эту задержку редактор посылает символы наполнения после остатка строки. Задержка может быть как целым числом, например, 20, так и целым числом, за которым следует '*', например '3*'. '*' указывает, что требуемое наполнение пропорционально числу строк, задействованных в операции, и заданная величина представляет собой требуемое наполнение на каждое задействование. Когда определяется '*', иногда бывает полезным задать задержку вида '3.5', чтобы задать задержку на единицу до десятых миллисекунды.
Для простого кодирования символов в строковых значащих возможностях обеспечивается ряд управляющих последовательностей. \E отображается в символ ESCAPE, ^x отображается в ctrl-x для любого соответствующего х, а последовательности 2 \n \r \t \b \f дают новую строку, return, tab, backspace и formfeed. Наконец, символы могут задаваться в виде трех восьмеричных цифр после знака \, а символы ^ и \ могут быть представлены как \^ и \\. Если необходимо поместить в возможность двоеточие (:), оно должно быть представлено в восьмеричном виде как \072. Если необходимо поместить в строковую возможность нулевой символ, он должен быть закодирован как \200. Программа, которая взаимодействует с termcap, использует С строки, отрезает старшие биты строки вывода, и так, что \200 будет выводится, как \000.
Подготовительное описание
Наиболее эффективным способом для подготовления терминального описания является описание подобного терминала в 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)
%B
BCD(16*(x/10))+(x%10), не выводится
%D
Обратное кодирование (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=%+%+'.
Движение курсора
Если терминал может перемещать курсор на одну позицию вправо, оставляя символ текущей позиции неизменным, то последовательность следует задавать как 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. Оно показывает, какие коды генерируют ввод информации с клавиатуры в программу, считывающую содержимое клавиатуры, и какие коды генерируют вывод информации из программы на экран.
ИмяВвод/выводОписание
CF
str
Курсор из
CL
str
Посылается с помощью клавиши CHAR LEFT
CL
str
Курсор на
DA
bool
Удалить аттрибутивную строку
EN
str
Посылается с помощью клавиши END
G1
str
Верхний правый (1ый квадрант) угловой символ
G2
str
Верхний левый (2ой квадрант) угловой символ
G3
str
Нижний левый (3ий квадрант) угловой символ
G4
str
Нижний правый (4ый квадрант) угловой символ
GC
str
Центрирует графический символ (аналогично +)
GD
str
Символ нижнего кармана
GE
str
Конец графического режима
GG
num
Количество символов, забираемое GS и GE
GH
str
Горизонтальный штриховой символ
GL
str
Символ левого кармана
GR
str
Символ правого кармана
GS
str
Начало графического режима
GU
str
Символ верхнего кармана
GV
str
Вертикальный штриховой символ
HM
str
Посылается с помощью клавиши HOME(если нет kh)
MP
str
Многократная инициализация строки
MR
str
Многократный сброс строки
NU
str
Посылается клавишей NEXT UNLOCKED CELL
PD
str
Посылается клавишей PAGE DOWN
PU
str
Посылается клавишей PAGE UP
RC
str
Посылается клавишей RECALC
RF
str
Посылается клавишей TOGLE REFERENCE
RT
str
Посылается клавишей RETURN
UP
str
Посылается клавишей up-arrow (альтернативно ku)
WL
str
Посылается клавишей WORD LEFT
WR
str
Посылается клавишей WORD RIGHT
Движение курсора.
Некоторые прикладные программы используют специально редактирующие коды. CR и CL двигают курсор на один символ вправо и влево соответственно. WR и WL двигают курсор на одно слово вправо и влево соответственно. CW изменяет окна, если они используются в программе.
Некоторые программы отключают курсор. Это завершается использованием CF для выключения курсора и CO для включения в обратное состояние.
Графический режим.
Если терминал имеет графические средства, то этот режим может включаться и выключаться использованием GS и GE кодов. Некоторые терминалы генерируют графические символы со всех клавиш, находясь в графическом режиме (такие как Visual 50). Другие коды G определяют отдельные графические символы, которые доступны с помощью управляющих последовательностей. Эти символы присутсвуют на некоторых терминалах, как альтернативные наборы графических символов (не как в графическом режиме big-map). vt100 имеет доступ к таким альтернативным наборам графических символов, но не в графическом режиме big-map.
Кредит
Эта утилита была развита в Калифорнийском Университете Беркли и используется с позволения.
ПРИМЕЧАНИЯ
допускает только 256 символов для строковых возможностей, и программы в termcap(2) не делают проверку при переполнении этого буфера. Тотальная длина единственного входа (исключая только переходы на новую строку) не могут превышать 1024.
Входы ma, vs и ve определяются в программе .
Не все программы поддерживают все входы. Имеются входы, которые не поддерживаются никакой программой.
Расширения XENIX termcap детально разъясняются в программной документации.
Обращайтесь к ручной странице screen(HW) для описания символьных последовательностей, используемых мониторным устройством в вашей определенной системе XENIX.