打印terminfo条目(例如,对于我当前的终端:xterm-256color)最直接的方法是什么,其中包括terminfo手册页中每个名称的简短说明?
我知道如何使用以下命令为我的终端打印出terminfo条目(每行一个名称):
infocmp -1
生成:
# Reconstructed via infocmp from file: /usr/share/terminfo/78/xterm-256color
xterm-256color|xterm with 256 colors,
am,
bce,
ccc,
km,
mc5i
Etc.
我可以在terminfo手册页中手动查找每个名称的描述(例如ccc表示“终端可以重新定义现有颜色”),但是有一种方法可以显示每个名称的描述而不必查找每个名称手动一个吗?
例如,我想看到这样的东西:
xterm-256color|xterm with 256 colors
am terminal has automatic margins
bce screen erased with background color
ccc terminal can redefine existing colors
km Has a meta key (i.e., sets 8th bit)
mc5i printer will not echo on screen
Etc.
infocmp的输出始终是定界的,并且相对容易解析,但是在terminfo手册页上列出了终端功能(具有变化的列宽和跨越多行的capname描述)的表却没有。如果是这样,生成我描述的输出将更加简单。也许存在terminfo手册页中内容的替代来源,该来源在编程上更易于操作?
我正在运行GNU bash,版本4.4.23(1)-发行版(x86_64-apple-darwin18.0.0)。
答案 0 :(得分:0)
可能不是。实际上,manual page和其他文件是使用scripts中的data file构造的,但是没有 安装 。
自生成以来,您可以编写一个脚本来提取信息,尽管您会发现使用 bash
脚本来进行此操作非常困难(perl是,awk是, sed ...也许)。这是一小部分文本(已安装在您的系统上):
.TS H
center expand;
c l l c
c l l c
lw25 lw6 lw2 lw20.
\fBVariable Cap- TCap Description\fR
\fBBooleans name Code\fR
auto_left_margin bw bw T{
cub1 wraps from column 0 to last column
T}
auto_right_margin am am T{
terminal has automatic margins
T}
back_color_erase bce ut T{
screen erased with background color
T}
can_change ccc cc
您始终可以使用 infocmp
列出 long 名称,并且顺序与(默认) short 相同。 em>名称,可以将它们组合起来。但是,长名称列表按字母顺序排序(布尔,数字和字符串组成的组,如短名称),而短名称默认情况下按顺序排列,以匹配SVr4 terminfo数据。您可能会看到类似这样的内容:
xterm-256color|xterm with 256 colors
am auto_right_margin
bce back_color_erase
ccc backspaces_with_bs
km can_change
mc5i eat_newline_glitch
mir has_meta_key
msgr move_insert_mode
npc move_standout_mode
xenl no_pad_char
colors prtr_silent
cols columns
it init_tabs
lines lines
pairs max_colors
acsc max_pairs
bel acs_chars
blink back_tab
bold bell
实际上,ncurses具有允许对名称进行排序的选项,因此您可以(几乎)使用 -sl
选项匹配右列的顺序。您可能会看到类似这样的内容:
xterm-256color|xterm with 256 colors
am auto_right_margin
bce back_color_erase
ccc backspaces_with_bs
xenl can_change
km eat_newline_glitch
mir has_meta_key
msgr move_insert_mode
npc move_standout_mode
mc5i no_pad_char
cols prtr_silent
it columns
lines init_tabs
colors lines
pairs max_colors
acsc max_pairs
cbt acs_chars
bel back_tab
cr bell
那是“几乎” ,因为列未将 xenl
与 eat_newline_glitch
对齐,因为ncurses具有 backspaces_with_bs
的内部名称,通常不会显示。更改ncurses源以显示:
xterm-256color|xterm with 256 colors
am auto_right_margin
bce back_color_erase
OTbs backspaces_with_bs
ccc can_change
xenl eat_newline_glitch