Manpages

ИМЯ

termcap − база данных возможностей терминалов

ОПИСАНИЕ

База termcap является устаревшим способом для описания возможностей символьных терминалов и принтеров. Она оставлена только для совместимости со старыми программами; новые должны использовать базу данных terminfo(5) и соответствующие библиотеки.

/etc/termcap является ASCII файлом, в котором перечисляются возможности множества терминалов разных типов. Программы могут читать termcap, чтобы найти отдельные ESC коды, необходимые для управления визуальными атрибутами, которые использует терминал. (Другие аспекты управления терминалом обрабатываются stty.) База termcap индексируется по переменной окружения TERM.

Записи termcap должны быть заданы в одной логической строке, где ’\’ используется для подавления новой строки. Поля разделяются символом ’:’. Первое поле каждой записи начинается с крайней левой позиции и содержит список имён конкретного терминала, разделяемых символом ’|’.

Первое подполе может (в записях BSD termcap до версии 4.3) содержать короткое имя, состоящее из двух символов. Это короткое имя может содержать денежный символ или маленькие буквы. В записях termcap 4.4BSD это поле опускается.

Во втором подполе (первое, в новом формате 4.4BSD) содержится имя, используемое в переменной окружения TERM. Оно должно быть в нижнем регистре. Выборочные возможности аппаратного обеспечения должны быть отмечены через добавление дефиса и суффикса к их имени. Пример смотри ниже. Обычно суффиксами являются w (ширина больше, чем 80 символов), am (автоматические границы), nam (нет автоматических границ) и rv (дисплей с возможностью реверса изображения). Третье подполе содержит длинное описательное имя для данной записи termcap.

Прочие поля содержат возможности терминала; любые продолженные строки с возможностями должны начинаться с одной табуляции слева.

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

Например:

Первая строка: vt|vt101|DEC VT 101 terminal in 80 character mode:\
Первая строка: Vt|vt101-w|DEC VT 101 terminal in (wide) 132 character mode:\
Логическое значение: :bs:\
Цифровое значение: :co#80:\
Строковое значение: :sr=\E[H:\

Замечание переводчика: Перечисленные ниже возможности оставлены без
перевода, потому что содержат множество специальных терминов, прямой
перевод которых может запутать неспециалиста по терминалам.

Возможности с логическими значениями

5i

Printer will not echo on screen

am

Automatic margins which means automatic line wrap

bs

Control-H (8 dec.) performs a backspace

bw

Backspace on left margin wraps to previous line and right margin

da

Display retained above screen

db

Display retained below screen

eo

A space erases all characters at cursor position

es

Escape sequences and special characters work in status line

gn

Generic device

hc

This is a hardcopy terminal

HC

The cursor is hard to see when not on bottom line

hs

Has a status line

hz

Hazeltine bug, the terminal can not print tilde characters

in

Terminal inserts nulls, not spaces, to fill whitespace

km

Terminal has a meta key

mi

Cursor movement works in insert mode

ms

Cursor movement works in standout/underline mode

NP

No pad character

NR

ti does not reverse te

nx

No padding, must use XON/XOFF

os

Terminal can overstrike

ul

Terminal underlines although it can not overstrike

xb

Beehive glitch, f1 sends ESCAPE, f2 sends ^C

xn

Newline/wraparound glitch

xo

Terminal uses xon/xoff protocol

xs

Text typed over standout text will be displayed in standout

xt

Teleray glitch, destructive tabs and odd standout mode

Возможности с цифровыми значениями

co

Number of columns

dB

Delay in milliseconds for backspace on hardcopy terminals

dC

Delay in milliseconds for carriage return on hardcopy terminals

dF

Delay in milliseconds for form feed on hardcopy terminals

dN

Delay in milliseconds for new line on hardcopy terminals

dT

Delay in milliseconds for tabulator stop on hardcopy terminals

dV

Delay in milliseconds for vertical tabulator stop on hardcopy terminals

it

Difference between tab positions

lh

Height of soft labels

lm

Lines of memory

lw

Width of soft labels

li

Number of lines

Nl

Number of soft labels

pb

Lowest baud rate which needs padding

sg

Standout glitch

ug

Underline glitch

vt

virtual terminal number

ws

Width of status line if different from screen width

Возможности со строковыми значениями

!1

shifted save key

!2

shifted suspend key

!3

shifted undo key

#1

shifted help key

#2

shifted home key

#3

shifted input key

#4

shifted cursor left key

%0

redo key

%1

help key

%2

mark key

%3

message key

%4

move key

%5

next-object key

%6

open key

%7

options key

%8

previous-object key

%9

print key

%a

shifted message key

%b

shifted move key

%c

shifted next key

%d

shifted options key

%e

shifted previous key

%f

shifted print key

%g

shifted redo key

%h

shifted replace key

%i

shifted cusor right key

%j

shifted resume key

&0

shifted cancel key

&1

reference key

&2

refresh key

&3

replace key

&4

restart key

&5

resume key

&6

save key

&7

suspend key

&8

undo key

&9

shifted begin key

*0

shifted find key

*1

shifted command key

*2

shifted copy key

*3

shifted create key

*4

shifted delete character

*5

shifted delete line

*6

select key

*7

shifted end key

*8

shifted clear line key

*9

shifted exit key

@0

find key

@1

begin key

@2

cancel key

@3

close key

@4

command key

@5

copy key

@6

create key

@7

end key

@8

enter/send key

@9

exit key

al

Insert one line

AL

Indert %1 lines

ac

Pairs of block graphic characters to map alternate character set

ae

End alternative character set

as

Start alternative character set for block graphic characters

bc

Backspace, if not ^H

bl

Audio bell

bt

Move to previous tab stop

cb

Clear from beginning of line to cursor

cc

Dummy command character

cd

Clear to end of screen

ce

Clear to end of line

ch

Move cursor horizontally only to column %1

cl

Clear screen and cursor home

cm

Cursor move to row %1 and column %2 (on screen)

CM

Move cursor to row %1 and column %2 (in memory)

cr

Carriage return

cs

Scroll region from line %1 to %2

ct

Clear tabs

cv

Move cursor vertically only to line %1

dc

Delete one character

DC

Delete %1 characters

dl

Delete one line

DL

Delete %1 lines

dm

Begin delete mode

do

Cursor down one line

DO

Cursor down #1 lines

ds

Disable status line

eA

Enable alternate character set

ec

Erase %1 characters starting at cursor

ed

End delete mode

ei

End insert mode

ff

Formfeed character on hardcopy terminals

fs

Return character to its position before going to status line

F1

The string sent by function key f11

F2

The string sent by function key f12

F3

The string sent by function key f13

...

...

F9

The string sent by function key f19

FA

The string sent by function key f20

FB

The string sent by function key f21

...

...

FZ

The string sent by function key f45

Fa

The string sent by function key f46

Fb

The string sent by function key f47

...

...

Fr

The string sent by function key f63

hd

Move cursor a half line down

ho

Cursor home

hu

Move cursor a half line up

i1

Initialization string 1 at login

i3

Initialization string 3 at login

is

Initialization string 2 at login

ic

Insert one character

IC

Insert %1 characters

if

Initialization file

im

Begin insert mode

ip

Insert pad time and needed special characters after insert

iP

Initialization program

K1

upper left key on keypad

K2

center key on keypad

K3

upper right key on keypad

K4

bottom left key on keypad

K5

bottom right key on keypad

k0

Function key 0

k1

Function key 1

k2

Function key 2

k3

Function key 3

k4

Function key 4

k5

Function key 5

k6

Function key 6

k7

Function key 7

k8

Function key 8

k9

Function key 9

k;

Function key 10

ka

Clear all tabs key

kA

Insert line key

kb

Backspace key

kB

Back tab stop

kC

Clear screen key

kd

Cursor down key

kD

Key for delete character under cursor

ke

turn keypad off

kE

Key for clear to end of line

kF

Key for scolling forward/down

kh

Cursor home key

kH

Cursor hown down key

kI

Insert character/Insert mode key

kl

Cursor left key

kL

Key for delete line

kM

Key for exit insert mode

kN

Key for next page

kP

Key for previous page

kr

Cursor right key

kR

Key for scolling backward/up

ks

Turn keypad on

kS

Clear to end of screen key

kt

Clear this tab key

kT

Set tab here key

ku

Cursor up key

l0

Label of zeroth function key, if not f0

l1

Label of first function key, if not f1

l2

Label of first function key, if not f2

...

...

la

Label of tenth function key, if not f10

le

Cursor left one character

ll

Move cursor to lower left corner

LE

Cursor left %1 characters

LF

Turn soft labels off

LO

Turn soft labels on

mb

Start blinking

MC

Clear soft margins

md

Start bold mode

me

End all mode like so, us, mb, md and mr

mh

Start half bright mode

mk

Dark mode (Characters invisible)

ML

Set left soft margin

mm

Put terminal in meta mode

mo

Put terminal out of meta mode

mp

Turn on protected attribute

mr

Start reverse mode

MR

Set right soft margin

nd

Cursor right one character

nw

Carriage return command

pc

Padding character

pf

Turn printer off

pk

Program key %1 to send string %2 as if typed by user

pl

Program key %1 to execute string %2 in local mode

pn

Program soft label %1 to to show string %2

po

Turn the printer on

pO

Turn the printer on for %1 (<256) bytes

ps

Print screen contents on printer

px

Program key %1 to send string %2 to computer

r1

Reset string 1 to set terminal to sane modes

r2

Reset string 2 to set terminal to sane modes

r3

Reset string 3 to set terminal to sane modes

RA

disable automatic margins

rc

Restore saved cursor position

rf

Reset string file name

RF

Request for input from terminal

RI

Cursor right %1 characters

rp

Repeat character %1 for %2 times

rP

Padding after character sent in replace mode

rs

Reset string

RX

Turn off XON/XOFF flow control

sa

Set %1 %2 %3 %4 %5 %6 %7 %8 %9 attributes

SA

enable automatic margins

sc

Save cursor position

se

End standout mode

sf

Normal scroll one line

SF

Normal scroll %1 lines

so

Start standout mode

sr

Reverse scroll

SR

scroll back %1 lines

st

Set tabulator stop in all rows at current column

SX

Turn on XON/XOFF flow control

ta

move to next hardware tab

tc

Read in terminal description from another entry

te

End program that uses cursor motion

ti

Begin program that uses cursor motion

ts

Move cursor to column %1 of status line

uc

Underline character under cursor and move cursor right

ue

End underlining

up

Cursor up one line

UP

Cursor up %1 lines

us

Start underlining

vb

Visible bell

ve

Normal cursor visible

vi

Cursor unvisible

vs

Standout cursor

wi

Set window from line %1 to %2 and column %3 to %4

XF

XOFF character if not ^S

Есть несколько способов определения управляющих кодов со строковыми значениями:

Обычные символы, исключая ’^’,’\’ и ’%’ обозначают сами себя.

Значение ’^x’ означает Control-x. Control-A эквивалетно десятичной единице.

\x означает специальный код. x может быть одним из следующих символов (в скобках дан десятичный код символа -- прим.пер.):

E символ Escape (27)
n Перевод строки (10)
r Возврат каретки (13)
t Табуляция (9)
b Backspace (8)
f Перевод формы (12)
0 символ Null. Комбинация \xxx задаёт восьмиричный символ xxx.

i

Увеличивает параметр на единицу

r

Возможность одиночного параметра

+

Добавить значение следующего символа к данному параметру и выполнить вывод получившегося бинарного кода

2

Выполнить ASCII вывод данного параметра с полем в 2

d

Выполнить ASCII вывод данного параметра с полем в 3

%

Вывести ’%’

Если вы используете вывод бинарного кода, то вы должны опустить символ null, потому что он завершает строку. Вы должны сбросить расширение табуляции, если табуляция может быть осуществлена через вывод бинарного кода.
Внимание:

Данные выше метасимволы, используемые в параметрах, могут быть ошибочны, они документированы в Minix termcap, который может быть несовместим с Linux termcap.

Блок графических символов может быть задан через три строковые значения:

as

запускает альтернативный набор символов

ae

закрывает его

ac

пары символов. Первый символ является именем блока графического символа, а второй является символом его описания.

Доступны следующие имена:

+ right arrow (>)

,

left arrow (<)

.

down arrow (v)

0

full square (#)

I

latern (#)

-

upper arrow (^)

rhombus (+)

a

chess board (:)

f

degree (’)

g

plus-minus (#)

h

square (#)

j

right bottom corner (+)

k

right upper corner (+)

l

left upper corner (+)

m

left bottom corner (+)

n

cross (+)

o

upper horizontal line (-)

q

middle horizontal line (-)

s

bottom horizontal line (_)

t

left tee (+)

u

right tee (+)

v

bottom tee (+)

w

normal tee (+)

x

vertical line (|)

~

paragraph (???)

Эти значения в круглых скобках являются рекомендуемыми знаениями по умолчанию, которые используются curses, если эти возможности отсутствуют.

СМОТРИ ТАКЖЕ

termcap(3), curses(3), terminfo(5)

ПЕРЕВОД

Перевёл с английского Виктор Вислобоков <corochoone [AT] perm.ru> 2004