|
НАЗВАНИЕ
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? | Описание |
---|---|---|---|
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) |
Вход выборки
Следующий вход описывает Concept-100 и является одним из
наиболее сложных входов в файле termcap. (Этот конкретный ввод
Concept устарел и используется только в качестве примера.)
c1|c10|concept100:is=\EU\Ef\E7\E5\E8\E1\ENH\EK\E\200\Eo&\ 200:\:al=3*\E^R:am:bs:cd=16*\E^C:ce=16\E^S:cl=2*^L:\:cm=|Ea%+) +:co#80:dc=16\E^B:\:ei=\E\200:eo:im=\E^P:in:ip=16*:li#24:mi:nd =\E=:\:se=\Ed\Ee:so=\ED\EE:so=\ED\EE:ta=8\t:ul:up=\E;:vb=\Ek\Ek:xn:
Входы могут продолжаться на множество строк с помощью 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.
Кредит
Эта утилита была развита в Калифорнийском Университете
Беркли и используется с позволения.
ПРИМЕЧАНИЯ
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)
|