termcap - 终端功能数据库详解
描述 DESCRIPTION
termcap 數(shù)據(jù)庫是一個過時 (obsolete) 工具,用來描述以字符為單位的終端和打印機的功能。它之所以被保留,是為了兼容古老的程序;新程序應(yīng)當(dāng)使用 terminfo(5) 數(shù)據(jù)庫和相關(guān)的庫。
/etc/termcap 是一個 ASCII 文件 (數(shù)據(jù)庫主控文件),列出了許多不同類型終端的功能。程序可以讀取它,來找到控制實際使用的終端的可視化屬性的特定的脫逸字符 (escape code)。(終端的其他方面是 stty 處理的。)termcap 數(shù)據(jù)庫按照 TERM 環(huán)境變量進行索引。
Termcap 條目必須以單個邏輯行定義,在新行符處應(yīng)當(dāng)用 `\' 來續(xù)行。字段以 `:' 分隔。每個條目的第一個字段從左邊起始,包含一系列終端的名稱,以 '|' 分隔。
第一個子字段可能 (在 4.3 及以前的 BSD termcap 條目中) 包含由兩個字符組成的簡稱。這個簡稱可以由大寫或小寫字母組成。在 4.4BSD termcap 條目中,這個字段被忽略。
第二個子字段 (在較新的 4.4BSD 格式中是第一個字段) 包括環(huán)境變量 TERM 使用的名字。只能使用小寫字母。可選的硬件功能應(yīng)當(dāng)通過附加一個連字符 (hyphen) 和后綴來標(biāo)記。參見下面的范例。一般使用的后綴是 w (行寬超過 80 個字符),am (自動加邊),nam (不自動加邊),和 rv (反轉(zhuǎn)視頻顯示)。
第三個子字段包含一個對這個 termcap 條目的長的描述性的名字。
接下來的字段包含終端功能。任何連續(xù)的功能行必須從左邊縮進一個指標(biāo)符 (tab) 位置。
盡管沒有定義順序,建議你將布爾值寫在最先,然后是數(shù)字值,最后是字符串值;按照字母排序,沒有大小寫之分。類似功能可以寫在同一行。
例如:
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????? 打印機不在屏幕上回顯
am????? 自動加邊,意味著自動卷行
bs????? Control-H (8 dec.) 執(zhí)行一個退格 (backspace)
bw????? 在行的左邊退格回到上一行的右邊
da????? 顯示保留在屏幕上方
db????? 顯示保留在屏幕下方
eo????? 一個空格刪除光標(biāo)所在位置的所有字符
es????? 工作在狀態(tài)行的轉(zhuǎn)義順序 (escape sequence) 和特殊字符
gn????? 普通設(shè)備
hc????? 這是一個硬拷貝終端
HC????? 光標(biāo)不在底線時幾乎看不見
hs????? 有一個狀態(tài)線
hz????? Hazeltine bug, 終端不能打印 ~ 符號
in????? 終端插入空字符,不是空格,來填充空白
km????? 終端有一個meta鍵
mi????? 光標(biāo)移動是工作在插入模式下
ms????? 光標(biāo)移動是工作在突出/下劃線 (standout/underline) 模式
NP????? 無填充字符
NR????? ti 不能反轉(zhuǎn)為 te
nx????? 無填充,必須使用 XON/XOFF
os????? 終端能重?fù)?(將光標(biāo)置于要改變的字符下面,再通過鍵盤輸入一個字符來替換原來的字符。)
ul????? 終端不能被重?fù)?#xff0c;只能下劃線
xb????? 蜂窩信號,f1 發(fā)射 ESCAPE, f2 發(fā)射 ^C
xn????? 換行/返轉(zhuǎn)信號
xo????? 終端使用xon/xoff協(xié)議
xs????? 打印的文字超過突出的文本,將顯示在突出的位置
xt?????? Teleray 信號,破壞tabs 和奇數(shù)化突出模式(standout mode)
數(shù)字值 Numeric Capabilities
co????? 列數(shù)
dB????? 硬拷貝終端上退格 (backspace) 延時,以毫秒為單位
dC????? 硬拷貝終端上回車 (carriage return) 延時,以毫秒為單位
dF????? 硬拷貝終端上打印紙進紙 (form feed) 延時,以毫秒為單位
dN????? 硬拷貝終端上新行符 (new line) 的延時,以毫秒為單位
dT????? 硬拷貝終端上制表符停止位 (tabulator stop) 的延時,以毫秒為單位
dV????? 硬拷貝終端上垂直制表符停止位的延時,以毫秒為單位
it????? tab 位置間的差分
lh????? 軟標(biāo)簽高度
lm????? 內(nèi)存線(Lines of memory)
lw????? 軟標(biāo)簽的寬度
li????? 行數(shù)
Nl????? 軟標(biāo)簽的數(shù)目
pb????? 需要填充的最低波特率
sg????? 突出信號
ug????? 下劃線信號
vt????? 虛擬終端數(shù)目
ws????? 若狀態(tài)線寬度與屏幕寬度不同時的大小
字符串值 String Capabilities
!1????? 轉(zhuǎn)義為保存鍵
!2????? 轉(zhuǎn)義為掛起鍵
!3????? 轉(zhuǎn)義為撤消鍵
#1????? 轉(zhuǎn)義為幫助鍵
#2????? 轉(zhuǎn)義為 home 鍵
#3????? 轉(zhuǎn)義為輸入鍵
#4????? 轉(zhuǎn)義為光標(biāo)左移鍵
%0????? 重做 (redo) 鍵
%1????? 幫助鍵
%2????? 標(biāo)記鍵
%3????? 信息 (message) 鍵
%4????? 轉(zhuǎn)移鍵
%5????? 下一對象 (next-object) 鍵
%6????? 打開鍵
%7????? 選項鍵
%8????? 上一對象鍵
%9????? 打印鍵
%a????? 轉(zhuǎn)義為信息 (message) 鍵
%b????? 轉(zhuǎn)義為轉(zhuǎn)移鍵
%c????? 轉(zhuǎn)義為next鍵
%d????? 轉(zhuǎn)義為options鍵
%e????? 轉(zhuǎn)義為previous鍵
%f????? 轉(zhuǎn)義為打印鍵
%g????? 轉(zhuǎn)義為redo鍵
%h????? 轉(zhuǎn)義為替換鍵
%i????? 轉(zhuǎn)義為光標(biāo)右移鍵
%j????? 轉(zhuǎn)義為恢復(fù)鍵
&0????? 轉(zhuǎn)義為取消鍵
&1????? 參考鍵
&2????? 刷新鍵
&3????? 替換鍵
&4????? 重新開始鍵
&5????? 恢復(fù)鍵
&6????? 保存鍵
&7????? 掛起鍵
&8????? 撤銷鍵
&9????? 轉(zhuǎn)義為開始鍵
*0????? 轉(zhuǎn)義為查找鍵
*1????? 轉(zhuǎn)義為命令鍵
*2????? 轉(zhuǎn)義為拷貝鍵
*3????? 轉(zhuǎn)義為創(chuàng)建鍵
*4????? 轉(zhuǎn)義為刪除字符
*5????? 轉(zhuǎn)義為刪除行
*6????? 選擇鍵
*7????? 轉(zhuǎn)義為結(jié)束鍵
*8????? 轉(zhuǎn)義為清除行鍵
*9????? 轉(zhuǎn)義為退出鍵
@0????? 查找鍵
@1????? 開始鍵
@2????? 取消鍵
@3????? 關(guān)閉鍵
@4????? 命令鍵
@5????? 拷貝鍵
@6????? 創(chuàng)建鍵
@7????? 結(jié)束鍵
@8????? 回車/發(fā)送鍵
@9????? 退出鍵
al????? 插入新行
AL????? 縮進 %1 行
ac????? 成對的圖形字符塊,映射替代的字符集
ae????? 結(jié)束替代的字符集
as????? 為圖形字符塊開始替代的字符集
bc????? 退格,如果沒有 ^H
bl????? 鈴聲
bt????? 移動到前一個tab停止位
cb????? 從行的開始處清除到光標(biāo)處
cc????? 虛設(shè)命令字符
cd????? 清除到屏幕的末端
ce????? 清除到行末
ch????? 水平移動光標(biāo)到 %1列
cl????? 清除屏幕并將光標(biāo)置位
cm????? 光標(biāo)移動到%1行,%2列 (屏幕中)
CM????? 光標(biāo)移動到%1行,%2列 (內(nèi)存中)
cr????? 回車
cs????? 翻滾區(qū)域,從%1行到%2行
ct????? 清除tab
cv????? 垂直移動光標(biāo)到%1行
dc????? 刪除一個字符
DC????? 刪除%1個字符
dl????? 刪除一行
DL????? 刪除%1行
dm????? 開始delete模式
do????? 光標(biāo)下移一行
DO????? 光標(biāo)下移#1行
ds????? 使?fàn)顟B(tài)行不可用
eA????? 激活替代的字符集
ec????? 從光標(biāo)處開始,刪除%1個字符
ed????? 結(jié)束delete模式
ei????? 結(jié)束insert模式
ff????? 硬拷貝終端上的走紙符
fs????? 在進入狀態(tài)行之前返回字符到他的位置
F1????? 由功能鍵F11發(fā)送的字符串
F2????? 由功能鍵F12發(fā)送的字符串
F3????? 由功能鍵F14發(fā)送的字符串
...???? ...
F9????? 由功能鍵F19發(fā)送的字符串
FA????? 由功能鍵F20發(fā)送的字符串
FB????? 由功能鍵F21發(fā)送的字符串
...???? ...
FZ????? 由功能鍵F45發(fā)送的字符串
Fa????? 由功能鍵F46發(fā)送的字符串
Fb????? 由功能鍵F47發(fā)送的字符串
...???? ...
Fr????? 由功能鍵F63發(fā)送的字符串
hd????? 移動光標(biāo)到下一行的中間
ho????? 光標(biāo)置初始位
hu????? 移動光標(biāo)到上一行的中間
i1????? 登錄時,初始化的字符串1
i3????? 登錄時,初始化的字符串3
is????? 登錄時,初始化的字符串2
ic????? 插入一個字符
IC????? 插入%1個字符
if????? 初始化文件
im????? 開始插入模式
ip????? 插入填充時間和插入后所需要的特殊字符
iP????? 初始化程序
K1????? 輔助鍵盤的上左鍵
K2????? 輔助鍵盤的center鍵
K3????? 輔助鍵盤的上右鍵
K4????? 輔助鍵盤的底部左鍵
K5????? 輔助鍵盤的底部右鍵
k0????? 功能鍵0
k1????? 功能鍵1
k2????? 功能鍵2
k3????? 功能鍵3
k4????? 功能鍵4
k5????? 功能鍵5
k6????? 功能鍵6
k7????? 功能鍵7
k8????? 功能鍵8
k9????? 功能鍵9
k;????? 功能鍵10
ka????? 清除所有的tab鍵
kA????? 插入行鍵
kb????? 退格鍵
kB????? 退回tab停止位
kC????? 清屏鍵
kd????? 光標(biāo)下移鍵
kD????? 刪除光標(biāo)下的字符鍵
ke????? 關(guān)閉輔助鍵盤
kE????? 清除到行末
kF????? 向前/后滾卷
kh????? 光標(biāo)置初始位鍵
kH????? 光標(biāo)hown down鍵
kI????? 插入字符/插入模式鍵
kl????? 光標(biāo)左移鍵
kL????? 整行刪除鍵
kM????? 退出插入模式
kN????? 下一頁
kP????? 上一頁
kr????? 光標(biāo)右移鍵
kR????? 向后/前滾卷鍵
ks????? 開輔助鍵盤
kS????? 清除到屏幕末端
kt????? 清除這個tab鍵
kT????? 設(shè)置這兒的tab鍵
ku????? 光標(biāo)向上鍵
l0????? 如果沒有f0,第零個標(biāo)簽功能鍵
l1????? 如果沒有f1,第一個標(biāo)簽功能鍵
l2????? 如果沒有f2,第二個標(biāo)簽功能鍵
...???? ...
la????? 如果沒有f10,第十個標(biāo)簽功能鍵
le????? 光標(biāo)左移一個字符
ll????? 移動光標(biāo)到左底角
LE????? 光標(biāo)左移%1個字符
LF?????? 關(guān)閉軟標(biāo)簽
LO????? 開啟軟標(biāo)簽
mb????? 開始閃爍
MC????? 清除軟標(biāo)記
md????? 開始粗體模式
me????? 開始所有的模式如so, us, mb, md 和 mr
mh????? 開始半閃爍模式
mk????? 暗模式 (看不見字符)
ML????? 設(shè)置左軟標(biāo)記
mm????? 使終端為meta模式
mo????? 使終端離開meta模式
mp????? 打開保護屬性
mr????? 開始反亮模式
MR????? 設(shè)置右軟標(biāo)記
nd????? 光標(biāo)右移一個字符
nw????? 回車命令
pc????? 填充字符
pf????? 關(guān)閉打印機
pk????? 對鍵%1編程,如同用戶打印一樣發(fā)送字符串%2
pl????? 對鍵%1編程,以本地模式執(zhí)行字符串%2
pn????? 對軟標(biāo)簽%1編程來顯示字符串%2
po????? 打開打印機
pO????? 打開打印機%1 (<256)字節(jié)
ps????? 在打印機上打印屏幕內(nèi)容
px????? 對鍵%1編程來發(fā)送字符串%2給計算機
r1????? 向設(shè)定的終端重置字符串1到sane模式
r2????? 向設(shè)定的終端重置字符串2到sane模式
r3????? 向設(shè)定的終端重置字符串3到sane模式
RA????? 取消自動標(biāo)記功能
rc????? 恢復(fù)存儲的光標(biāo)位置
rf????? 重設(shè)字符串文件名
RF????? 終端輸入請求
RI????? 光標(biāo)右移%1個字符
rp????? 重復(fù)字符%1,共%2次
rP????? 替換模式中,在字符發(fā)送后填充
rs????? 重設(shè)字符串
RX????? 關(guān)閉XON/XOFF流量控制
sa????? 設(shè)置 %1 %2 %3 %4 %5 %6 %7 %8 %9屬性
SA????? 激活自動標(biāo)記功能
sc????? 保存光標(biāo)位置
se????? 結(jié)束突出模式
sf????? 正常滾卷一行
SF????? 正常滾卷%1行
so????? 開始突出模式
sr????? 反向滾卷
SR????? 向上滾卷%1行
st?????? 設(shè)置所有行的制表符的停止位到當(dāng)前列
SX????? 打開XON/XOFF流量控制
ta????? 移動到下一個硬件tab
tc?????? 從另一個登記項讀取終端描述
te????? 結(jié)束使用光標(biāo)動作的程序
ti????? 開始光標(biāo)動作的程序
ts????? 移動光標(biāo)到狀態(tài)行的%1列
uc????? 光標(biāo)下方字符下劃線,并向右移動光標(biāo)
ue????? 結(jié)束下劃線
up????? 光標(biāo)向上一行
UP????? 光標(biāo)向上%1行
us????? 開始下劃線
vb????? 可視化鬧鈴
ve????? 正常的可見光標(biāo)
vi????? 光標(biāo)不可見
vs????? 突出光標(biāo)
wi????? 設(shè)置窗口,從%1行到%2行,從3%列到4%列
XF????? XOFF字符,如果沒有 ^S
還有一些方法定義字符串值功能的控制代碼:
通常的字符表示它們自己,除了 '^','' 和 '%' 。
一個 '^x' 表示Control-x.?????? Control-A等于 1 個10進制數(shù)。
?
表示一個特殊的代碼。x 可以是以下的一個字符:
E 轉(zhuǎn)義符 Escape (27)?
n 換行 Linefeed (10)?
r 回車 Carriage return (13)?
t 制表符 Tabulation (9)?
b 退格 Backspace (8)?
f 走紙符 Form feed (12)?
0 空字符 Null character. \xxx 指定八進制為 xxx 的字符.?
i?
逐一增加參數(shù)?
r?
單個參數(shù)功能?
+?
增加下一個字符的值到這個參數(shù)并以二進制輸出?
2?
對于2,用一個字段將參數(shù)以ASCII輸出?
d?
對于3,用一個字段將參數(shù)以ASCII輸出?
%?
打印一個 '%'?
如果你使用二進制輸出,那么你應(yīng)該避免空字符,因為它是字符串的終止符。如果Tab鍵能夠成為一個參數(shù)的二進制輸出,你應(yīng)該重新設(shè)置Tab鍵長度。
警告:?
以上參數(shù)的元字符是針對 Minix 系統(tǒng)的 termcap,可能有一些問題,因為可能不是完全與 Linux 的 termcap 兼容的。?
圖形字符塊通過三個字符串值功能來指定:
as?
開始替代的字符集?
ae?
結(jié)束?
ac?
字符對。第一個字符是圖形字符塊的名稱,第二個字符是它的定義。?
可以用下面這些名稱:
+?????? 右箭頭 right arrow (>)
,??????? 左箭頭 left arrow (<)
.?????? 下箭頭 down arrow (v)
0?????? 全直角 full square (#)
I?????? 上箭頭 latern (#)
-?????? 上箭頭 upper arrow (^)
'?????? 菱形 rhombus (+)
a?????? 棋板 chess board (:)
f?????? 度數(shù) 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?????? 左側(cè)T型 left tee (+)
u?????? 右側(cè)T型 right tee (+)
v?????? 底部T型 bottom tee (+)
w?????? 常規(guī)T型 normal tee (+)
x?????? 垂直線 vertical line (|)
~?????? 段落 paragraph (???)
如果缺少相應(yīng)功能,將缺省使用圓括號中的值,那是 curses 庫使用的值。?
總結(jié)
以上是生活随笔為你收集整理的termcap - 终端功能数据库详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: configure: error: no
- 下一篇: 在Linux系统的命令行中为MySQL创