说明

termcap数据库是一种过时的工具,用于描述字符单元终端和打印机的功能。保留它仅是为了与旧程序兼容。新程序应使用terminfo(5)数据库和关联的库。

/ etc / termcap是一个ASCII文件(数据库主数据库),列出了许多不同类型的终端的功能。程序可以读取termcap来查找控制实际使用的终端的视觉属性所需的特定转义码。 (终端的其他方面由stty(1)处理。)termcap数据库在TERM环境变量上建立索引。

必须在单个逻辑行上定义Termcap条目,并使用aq \ aq禁止换行。字段之间用aq:aq分隔。每个条目的第一个字段都从左侧边缘开始,并包含终端名称列表,以aq | aq分隔。

第一个子字段可以(在4.3和更早版本的BSD termcap条目中)包含由两个字符组成的简称。该短名称可以由大写字母或小写字母组成。在4.4BSD中,termcap条目会省略此字段。

第二个子字段(第一个子字段,采用更新的4.4BSD格式)包含环境变量TERM使用的名称。应该用小写字母拼写。可选硬件功能应通过在此名称后附加连字符和后缀来标记。参见以下示例。通常的后缀是w(宽度超过80个字符),am(自动边距),nam(无自动边距)和rv(反向视频显示)。第三个子字段包含此termcap条目的描述性长名称。

后续字段包含终端功能;任何持续的功能行都必须从左边距缩进一个标签。

尽管没有定义顺序,但建议先编写布尔值,然后编写数字功能,然后编写字符串功能,每种功能都按字母顺序排序,而无需查看低位或高位拼写。相似功能的功能可以写成一行。

例如:

Head line: vt|vt101|DEC VT 101 terminal in 80 character mode:\
Head line: Vt|vt101-w|DEC VT 101 terminal in (wide) 132 character mode:\
Boolean: :bs:\
Numeric: :co#80:\
String: :sr=\E[H:\

Boolean capabilities

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 null bytes, 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 haC
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

Numeric capabilities

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

String capabilities

!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 cursor 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      Insert %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 haH
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 scrolling 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 scrolling 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 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 filename
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 invisible
vs      Standout cursor
wi      Set window from line %1 to %2 and column %3 to %4
XF      XOFF character if not haS

有几种定义字符串功能的控制代码的方法:

除aqhaaq,aq \ aq和aq%aq之外,每个普通字符都代表自己。

hax表示Control-x。 Control-A等于1个小数。

\ x表示特殊代码。 x可以是以下字符之一:

逃脱游戏(27) n换行(10) r回车(13) t制表(9) b退格键(8) f换页(12) 0空字符。 \ xxx指定八进制字符xxx。
i
将参数递增一。
r
单参数功能
+
将下一个字符的值添加到此参数并执行二进制输出
2
用2的字段对这个参数进行ASCII输出
d
用3的字段对这个参数进行ASCII输出
%
打印aq%aq

如果使用二进制输出,则应避免使用空字符(aq \ 0aq),因为它会终止字符串。如果制表符可以是参数的二进制输出,则应重置制表符扩展。

Warning:
上面的参数元字符可能是错误的:它们记录了可能与Linux termcap不兼容的Minix termcap。

可以通过三种字符串功能来指定块图形字符:

as
启动替代字符集
ae
结束替代字符集
ac
对字符。第一个字符是块图形符号的名称,第二个字符是其定义。

可以使用以下名称:

+       right arrow (>)
,       left arrow (<)
.       down arrow (v)
0       full square (#)
I       lantern (#)
-       upper arrow (ha)
'       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 (|)
ti      paragraph (???)

括号中的值是curses库使用的建议默认值(如果缺少此功能)。

TERMCAP - Linux手册页

Linux程序员手册 第5部分
更新日期: 2020-08-13

另外参见

ncurses(3),termcap(3),terminfo(5)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

名称

termcap-终端能力数据库

日期:2019-08-20 18:01:51 来源:oir作者:oir