termcap

Autres langues

Langue: ru

Autres versions - même langue

Version: 100068 (fedora - 25/11/07)

Section: 5 (Format de fichier)

ИМЯ

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@perm.ru> 2004