directorio terminfo

Finalidad

Contiene archivos fuente terminfo compilados.

Descripción

Termino es una base de datos compilada que describe las prestaciones de los terminales. Los terminales se describen en los archivos de origen terminfo a través de entradas. Cada entrada contiene información sobre las prestaciones de un terminal o conjunto de terminales comunes en particular. Las prestaciones incluyen las operaciones que se pueden realizar, los requisitos de relleno, la posición del cursor, las secuencias de mandatos y las secuencias de inicialización.

La base de datos compilada de terminfo la utilizan aplicaciones como, por ejemplo, curses y vi que deben tener conocimientos del terminal pero que no desean ser dependientes del terminal.

En este artículo se describe el formato de archivo de origen de terminfo y se tratan los temas siguientes:

Se proporciona un ejemplo de un archivo de origen terminfo .

En este artículo se explica el formato de archivo de origen de terminfo . Antes de que las aplicaciones puedan utilizar una descripción terminfo , el archivo de origen terminfo en el que reside debe compilarse utilizando el mandato tic . El uso del mandato tic da como resultado la creación de uno o varios binarios, uno para cada terminal. La colección de binarios terminfo en un directorio (normalmente /usr/share/lib/terminfo) se conoce como base de datos terminfo o terminfo.

Entradas de archivo de origen

Puede editar o modificar archivos de origen. Un archivo fuente puede contener una o más descripciones de terminal o entradas. Un archivo de origen terminfo tiene un sufijo .i . Ejemplos de archivos de origen son el archivo /usr/share/lib/terminfo/ibm.ti , que describe los terminales IBM® y el archivo /usr/share/lib/terminfo/dec.ti , que describe los terminales DEC.

Consulte el mandato infocmp para obtener la descripción de origen de un terminal cuando sólo está disponible el binario.

Cada entrada de un archivo de origen terminfo consta de un número de campos separados por comas. Se ignora el espacio en blanco entre comas. El ejemplo siguiente muestra una entrada de archivo de origen:

ibm6155-113|IBM 6155 Black & White display,
        font0=\E[10m,   font1=\E[11m,   font2=\E[12m,
        bold=\E[12m,    sgr0=\E[0;10m,
        cols#113,       lines#38,
        sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
        blink@,         use=ibm5151,

Las entradas pueden continuar en varias líneas colocando un espacio en blanco al principio de cada línea subsiguiente. Para crear una línea de comentario, empiece la línea con un carácter # (signo de almohadilla). Para comentar una prestación de terminal individual, ponga un punto antes del nombre de la prestación.

El primer campo (o línea) para cada terminal proporciona los diversos nombres por los que se conoce el terminal, separados por caracteres | (símbolo de barra vertical). El primer nombre de pila debe ser la abreviatura más común para el terminal. (Este nombre es el que se utiliza con más frecuencia al establecer la variable de entorno TERM.) El apellido indicado debe ser un nombre largo que identifique completamente el terminal. Todos los demás nombres se entienden como sinónimos para el nombre de terminal. Todos los nombres, excepto el último, no deben contener espacios en blanco. El apellido puede contener espacios en blanco para la legibilidad. Todos los nombres deben ser exclusivos.

Los campos restantes identifican las capacidades del terminal.

Al elegir nombres de terminal, hay algunas convenciones que debe seguir. El nombre raíz debe representar la clase de hardware concreta del terminal. No utilice guiones en el nombre raíz, excepto para evitar sinónimos que entren en conflicto con otros nombres. Para indicar las modalidades posibles para el hardware o las preferencias de usuario, añada un signo menos (-) y uno de los sufijos siguientes:

Tabla 1. Sufijos de nombre raíz
Sufijo Significado Ejemplo
-am Con márgenes automáticos (normalmente predeterminados) Termin al-am
-m Modalidad monocroma Termin al-m
-w Modalidad ancha (más de 80 columnas) Termin al-w
-Nam Sin márgenes automáticos Terminal-Nam
- n Número de líneas en la pantalla Termin al-60
-na Sin teclas de flecha (déjelas en local) Termin al-na
- n p Número de páginas de memoria Termin al-4p
-rv Vídeo invertido Termin al-rv
-s Simulación de línea de estado. El terminal permite que una o más líneas que normalmente forman parte de la pantalla se utilicen para la línea de estado. Esto no es lo mismo que los terminales que tienen líneas de estado dedicadas permanentemente. Terminal-
-desconocido Modalidad desconocida. Esta entrada se puede utilizar para definir una descripción general de un terminal que tiene varias de las modalidades descritas anteriormente. Las otras entradas utilizarían la entrada desconocida como descripción base y añadirían la personalización adecuada. Consulte el campo use=. Terminal desconocido

Un terminal en modalidad de 132 columnas sería Terminal-w.

Tipos de prestaciones

Una entrada terminfo puede definir cualquier número de prestaciones. Todas las prestaciones pertenecen a uno de estos tres tipos:

Elemento Descripción
Booleano Indica que el terminal tiene una característica determinada. Las prestaciones booleanas son verdaderas si el nombre correspondiente está contenido en la descripción de terminal.
Numérica Da el tamaño del terminal o el tamaño de retrasos particulares.
serie Proporciona una secuencia que se puede utilizar para realizar operaciones de terminal determinadas.

Este artículo proporciona tablas que documentan los tipos de prestación. Todas las tablas listan lo siguiente:

Elemento Descripción
Variable El nombre que utiliza la aplicación para acceder a una prestación.
Nombre de límite El nombre abreviado de la prestación. Este nombre se utiliza en el texto de la base de datos de terminfo y por la persona que crea o edita una entrada de archivo de origen. Puede utilizar el mandato tput para generar el valor de una prestación para un terminal determinado.
I.Code El código interno de 2 letras utilizado en la base de datos compilada. Este código siempre corresponde a un nombre de prestación de termcap .
Descripción Una descripción de la prestación.

Los nombres de capacidad no tienen límite de longitud absoluta. Se adopta un límite informal de cinco caracteres para mantenerlos cortos y permitir que se alineen las pestañas del archivo de origen de mayúsculas. Siempre que sea posible, los nombres se eligen para que sean iguales o similares al estándar ANSI X3.64 de 1979.

Para obtener una descripción detallada de las diversas prestaciones según la función, lea:

Prestaciones booleanas

Una prestación booleana indica que el terminal tiene alguna característica en particular. Por ejemplo, la prestación am en una descripción de terminal indica que el terminal tiene márgenes automáticos (por ejemplo, una nueva línea automática cuando se alcanza el final de una línea). A continuación se muestran las prestaciones booleanas:

Tabla 2. Prestaciones booleanas
Variable Nombre de límite I.Code
márgen auto_left_margin
Indica que cub1 se ajusta de la columna 0 a la última columna.
bw bw
margen derecha_automático
Indica que el terminal tiene márgenes automáticos.
a.m. a.m.
borra_color_atrás
Borra la pantalla con el fondo actual.
a. C O
puede cambiar
Puede redefinir el color existente.
ccc cc
ceol_destacado_fallo
Indica que la sobrescritura no borra la sobrescritura.
xhp xs
fallo_dirección_col
Indica sólo el movimiento positivo para los límites de hpa/mhpa.
xhpa YA
cpi_cambios_res
Indica que la resolución ha cambiado al cambiar el tono de caracteres.
cpix YF
cr_cancela_modo_micro
Indica que cr desactiva la modalidad micro.
crxm YB
dest_tabs_magic_smso (o teleray_glitch)
Indica tabuladores destructivos y blancos insertados al entrar en modalidad destacada.
xt xt
comer_nueva_línea_fallo
Ignora el carácter de nueva línea después de 80 columnas.
xenl xn
borrar_sobrescritura
Borra los sobresaltos con un espacio en blanco.
EO EO
tipo_genérico
Indica el tipo de línea genérico, como por ejemplo, acceso telefónico o conmutador.
GN GN
copia_impresa
Indica el terminal de copia impresa.
hc hc
cursor duro
Indica que el cursor es difícil de ver.
chts HC
clave_meta_has
Indica que el terminal tiene una meta clave, como por ejemplo desplazamiento o conjunto de bits de paridad.
km km
tiene_rueda_de_impresión
Indica el operador necesario para cambiar el juego de caracteres.
margarita YC
línea_estado_as
Indica que el terminal tiene una línea de estado dedicada.
HS HS
saturación de hue_lightness_saturation
Utiliza la notación de color HLS (Tektronix).
hls hl
insertar_fallo_nulo
Indica que la modalidad de inserción distingue los nulos.
en en
lpi_cambios_res
Indica que la resolución ha cambiado al cambiar el paso de línea.
lpix YG
memory_arriba
Pantalla retenida sobre la pantalla (normalmente terminales de varias páginas).
DA DA
memory_más abajo
Visualización retenida debajo de la pantalla (normalmente terminales de varias páginas)
db db
mover_insertar_modo
Indica que es seguro moverse mientras se está en modalidad de inserción.
Mir mi
modo_destacado_movimiento
Indica que es seguro moverse en modalidades destacadas.
gestor de mensajes ms
costes_xon_xoff
Indica que el relleno no funcionará, que xon/xoff es necesario.
nxon NX
no_esc_ctlc (o beehive_glitch)
Indica un terminal con F1=escape y F2=Ctrl-C.
xsb xb
no_car_pad_car
Indica que el carácter de relleno no existe.
npc NP
región_no_de_desplazamiento
Indica una región de desplazamiento no destructiva.
ndscr ND
no_rev_rmcup
Indica que smcup no invierte rmcup.
nrrmc NR
sobre_golpe
Indica sobreataques de terminal.
os os
prtr_silencioso
Indica que la impresora no hará eco en la pantalla.
mc5i 5i
fallo_dirección_fila
Indica sólo movimiento positivo para vpa/mvpa caps.
xvpa YD
media_derecha_automática
Indica que la impresión en la última columna provoca un retorno de carro.
sam
línea_estado_esc_ok
Indica que se puede utilizar un escape en la línea de estado.
Eslok es
tilde_glitch
Indica que el terminal no puede imprimir el carácter ~ (tilde).
Hz Hz
subrayado_transparente
Se sobrescribe con el carácter de subrayado.
UL UL
xon_xoff
Indica que el terminal utiliza el reconocimiento xon/xoff.
xon xo

Prestaciones numéricas

Las prestaciones numéricas van seguidas del carácter # (signo de almohadilla) y de un valor numérico. La prestación cols#80 indica que el terminal tiene 80 columnas. A continuación se muestran las prestaciones numéricas:

Tabla 3. Prestaciones numéricas
Variable Nombre de límite I.Code
capacidad de almacenamiento intermedio
Especifica el número de bytes colocados en el almacenamiento intermedio antes de la impresión.
bufsz Ya
columnas
Especifica el número de columnas de una línea.
COLS co
espacio_horz_punto
Identifica el espaciado horizontal de puntos en puntos por pulgada.
Spinh Yc
espacio_ver_punto
Especifica el espaciado vertical de las patillas en patillas por pulgada.
Spinv Yb
init_tabuladores
Proporciona pestañas iniciales cada número especificado de espacios.
it it
alta_etiqueta
Especifica el número de filas de cada etiqueta.
lh lh
anchura de etiqueta
Especifica el número de columnas de cada etiqueta.
W W
líneas
Especifica el número de líneas en pantalla o página.
líneas li
línea_de_memoria
Especifica el número de líneas de memoria si > líneas. Un valor de 0 indica un número de variable.
LM LM
mágic_cookie_glitch
Indica el número de caracteres en blanco dejados por smso o rmso.
xmc SG
atributos_máx
Identifica los atributos de vídeo combinados máximos que puede visualizar el terminal.
ma ma
máx_colores
Especifica el número máximo de colores soportados.
Colores co
dirección_micro_máx
Indique el límite de uso de Mhpa y mvpa.
Dirección Aa
máx_micro_salto
Especifica el límite de uso de las prestaciones mcub1, mcuf1, mcuu1y mcud1 .
mjump
pares máximos
Especifica el número máximo de pares de colores soportados.
pares PA
ventanas máximas
Especifica el número máximo de ventanas definibles.
Wnum MW
tamaño_microcaracteres
Especifica el tamaño de paso de carácter cuando se está en modalidad micro.
MCS Yf
tamaño_línea_micro
Identifica el tamaño de paso de línea cuando está en modalidad micro.
MLS Años
vía_de_no_color_vídeo
Indica los atributos de vídeo que no se pueden utilizar con colores.
ncv NC
núm_etiquetas
Especifica el número de etiquetas de la pantalla. Este valor empieza en 1.
nlab NL
número_de_pins
Identifica el número de patillas en la cabeza de impresión.
Patillas Yh
carácter_resultado_salida
Especifica la resolución horizontal en unidades por carácter.
orc Yi
salida_res_horz_pulgada
Especifica la resolución horizontal en unidades por pulgada.
orhi Yk
línea_res_salida
Especifica la resolución vertical en unidades por línea.
orl Yj
salida_res_vert_pulgada
Indica resolución vertical en unidades por pulgada.
orvi IL
velocidad de baudios de padding_rate
Indica la velocidad en baudios más baja donde se necesita el retorno de carro y el relleno de retorno de línea.
PB PB
tasa_impresión
Indica la velocidad de impresión en caracteres por segundo.
cps Gimnasio
terminal virtual
Indica el número de terminal virtual.
VT VT
tamaño_char_ancho
Identifica el tamaño de paso de carácter cuando el terminal está en modalidad de doble ancho.
anchos YN
líneas de estado de ancho
Especifica el número de columnas en líneas de estado.
wsl ws

Prestaciones de serie

Puede definir prestaciones con valor de serie, como por ejemplo la prestación El (borrar al final de la línea) con un código de 2 caracteres, un = (signo igual) y una serie que termina con una, (coma). Un retardo en milisegundos puede aparecer en cualquier lugar de una prestación de serie. Para definir un retardo, especifique el retardo entre un $< y un >. A continuación se muestra la prestación El con un retardo de 3:
el=\EK$<3>

La subrutina tputs proporciona caracteres de relleno para un retardo. Un retardo puede ser un número, como por ejemplo20, o un número seguido de un * (asterisco), como3*. Un asterisco indica que el relleno necesario es proporcional al número de líneas afectadas por la operación. El número indicado representa el relleno necesario para cada unidad afectada. (Para el carácter de inserción, el factor es el número de líneas afectadas, que siempre es 1, a menos que el terminal tenga la capacidad xenl y el software lo admita). Si especifica un asterisco, a veces resulta útil proporcionar un retardo con el formato a.b, como por ejemplo3.5, para especificar un retardo de cada unidad a décimas de milisegundos. Sólo puede especificar una posición decimal.

La base de datos terminfo proporciona varias secuencias de escape en las prestaciones de valor de serie para facilitar la codificación de caracteres. Se reconocen los siguientes códigos de escape:

Código de escape Significado
\E,\e Salir
\n Nueva línea
\l Salto de línea
\r Retorno de carro
\t Ficha
\b Retroceso
\f Alimentación de papel
\s Espacio
\^ Acento circunflejo
\\ Barra inclinada invertida
\, Coma
\: Colón
\ nnn Carácter con valor octal nnn
^ x Ctrl-x para cualquier x adecuado
\0 Carácter nulo.\0en realidad produce \200, que no finaliza una serie sino que se comporta como un carácter nulo en la mayoría de los terminales.

En la tabla Prestaciones de serie se utilizan los convenios siguientes:

(G)
Indica que la serie se pasa a través de tparm, con los parámetros especificados (#i).
(*)
Indica que el relleno se puede basar en el número de líneas afectadas.
(n.º i)
Indica el parámetro ith.
Tabla 4. Prestaciones de serie
Variable Nombre de límite I.Code
str _definido_aplic
Serie de terminal definida por la aplicación.
apstr A
asc_chars
Correlación de juego de caracteres alternativo de glifo con caracteres.
acsc ca
tabulación_retroceso
Pestaña Atrás.
TCC BT
avisador
Produce una señal audible (campana).
BEL BL
box_chars_1
Caracteres de recuadro, conjunto primario.
box1 bx
box_chars_2
Caracteres de recuadro, conjunto alternativo.
box2 por
box_attr_1
Atributos para box_chars_1.
batt1 BX
box_attr_2
Atributos para box_chars_2.
batt2 Por
devolución_carro
Indica retorno de carro. (*)
cr cr
char_cambio_tono
Cambie el número de caracteres por pulgada.
CPI ZZ
línea_cambiante
Cambiar número de líneas por pulgada.
LPI ZB
cambio_res_horz
Cambiar resolución horizontal.
CHR CZ
cambio_res_vert
Cambiar resolución vertical.
cvr XD
relleno de caracteres
Especifica el relleno de caracteres cuando está en modalidad de sustitución.
Rmp rP
región_desplazamiento_cambio
Cambia la región de desplazamiento a las líneas #1 a #2. (G)
CSR cs
nombre_conjunto_caracteres
Lista de nombres de juegos de caracteres.
csnm Tiempo
clear_all_tabuladores
Borra todos los tabuladores.
tbc ct
márgenes claros
Borre los márgenes flexibles izquierdo y derecho.
Mgc MC
pantalla_clara
Borra la pantalla y coloca el cursor en la posición de inicio. (*)
borrar cl
clr_bol
Borrar al principio de la línea, inclusive.
el1 CB
clr_eol
Borra al final de la línea.
el CE
Clr_eod
Borra hasta el final de la pantalla. (*)
ed cd
color_bg_0
Color de fondo 0, negro.
colb0 d0
color_bg_1
Color de fondo 1, rojo.
colb1 d1
color_bg_2
Color de fondo 2, verde.
colb2 d2
color_bg_3
Color de fondo 3, marrón.
colb3 d3
color_bg_4
Color de fondo 4, azul.
colb4 d4
color_bg_5
Color de fondo 5, magenta.
colb5 d5
color_bg_6
Color de fondo 6, cian.
colb6 d6
color_bg_7
Color de fondo 7, blanco.
colb7 d7
color_fg_0
Color de primer plano 0, negro.
colf0 c0
color_fg_1
Color de primer plano 1, rojo.
colf1 c1
color_fg_2
Color de primer plano 2, verde.
colf2 c2
color_fg_3
Color de primer plano 3, marrón.
colf3 c3
color_fg_4
Color de primer plano 4, azul.
colf4 c4
color_fg_5
Color de primer plano 5, magenta.
colf5 c5
color_fg_6
Color de primer plano 6, cian.
colf6 c6
color_fg_7
Color de primer plano 7, blanco.
colf7 c7
dirección_columna
Establece la columna de cursor. (G)
hpa ch
carácter_mandato
Indica que se puede establecer un carácter de prototipo de mandato de terminal.
cmdch CC
crear_ventana
Defina win #1 para pasar de #2, #3 a #4, #5.
cwin CW
dirección_cursor_
Indica la fila de movimiento del cursor relativo a la pantalla #1, col #2. (G)
taza CM
cursor_abajo
Mueve el cursor una línea hacia abajo.
cud1 do
inicio_cursor_inicio
Mueve el cursor a la posición inicial (si no hay direccionamiento taza ).
home an
cursor_invisible
Hace que el cursor sea invisible.
ciudadanos vi
cursor_izquierda
Mueve el cursor a la izquierda un espacio.
cub1 LE
dirección_mem_cursor_
Indica direccionamiento relativo de cursor de memoria. (G)
Mrcup CM
cursor_normal
Hace que el cursor aparezca normal (deshacer vs o vi).
Cnorm VE
derecha de cursor_derecha
Indica un espacio no destructivo (cursor a la derecha).
cuf1 o
cursor_en_ll
Mueve el cursor a la primera columna de la última línea (si no hay direccionamiento taza ).
ll ll
cursor_arriba
Mueve el cursor una línea hacia arriba.
cuu1 activo
cursor_visible
Hace que el cursor sea muy visible.
Cvvis vs
definir carácter
Defina un carácter en un juego de caracteres.
defc TLA
eliminar_carácter
Suprime el carácter. (*)
dch1 CC
línea_supresión
Suprime la línea. (*)
dl1 DL
telefón_dial:
Marque el número de teléfono #1.
dial DI
línea_estado_dis_estado
Inhabilita la línea de estado.
Dsl DS
reloj de visualización
Mostrar reloj de hora del día.
Dclk DK
línea_de_medio
Indica subíndice (avance 1/2 salto de línea).
HD HD
ena_acs
Habilitar juego de caracteres alternativo.
enacs eA
entr_alt_charset_mode
Inicia el juego de caracteres alternativo.
smacs as
modalidad_entrada_
Active los márgenes automáticos.
smam SA
modalidad_de_entorno_azul
Habilita el parpadeo.
Parpadear mb
modalidad_negrita
Habilita el modo en negrita (extra brillante).
Negrita md
modo_bottom_ent_
Inicia la modalidad de línea de fondo. Esta prestación de serie es una ayuda para dibujar tablas y sólo es válida para las definiciones de terminal aixterm y aixterm-m .
btml BM
modo_entrada_ca
Inicia programas que utilizan la dirección taza .
Smcup ti
modo_supresión_entrada_
Inicia la modalidad de supresión.
smdc DM
modalidad_dim
Habilita el modo semicualiente.
tenue mh
modalidad_doble
Habilite la impresión de doble ancho.
swidm ZF
calidad_red_entorno
Establecer impresión de calidad de borrador.
sdrfq ZG
modalidad_inserción_entrada_
Inicia la modalidad de inserción.
emir im
entr_italics_mode
Habilitar cursiva.
sitm zh
modalidad_izquierda
Habilite el movimiento de carro de la izquierda.
Slm ZL
modalidad_entorno_lvert
Inicia la modalidad de línea vertical izquierda. Esta prestación de serie es una ayuda para dibujar tablas. Sólo es válido para las definiciones de terminal aixterm y aixterm-m .
Lvert lv
modalidad_micro_entorno
Habilite las prestaciones de micro movimiento.
smicm ZJ
Introducir calidad cercana a la letra
Establecer impresión de calidad de letra cercana.
Snlq ZK
calidad_norma
Establezca la impresión de calidad normal.
Snrmq ZL
modalidad_de_entorno_protegido
Habilita la modalidad protegida.
prot mp
modo_inversión_entrada_
Habilita el modo de vídeo inverso.
REV mr
modalidad_rver_entr
Inicia la modalidad de línea vertical derecha. Esta prestación de serie es una ayuda para dibujar tablas y sólo es válida para las definiciones de terminal aixterm y aixterm-m .
Rvert rv
modo_de_entorno_seguro
Habilita la modalidad en blanco (los caracteres son invisibles).
invis mk
modo_sombreado
Habilitar impresión de sombra.
sshm ZM
modo_entrada_salida
Inicia la modalidad destacada.
smso so
modalidad_suscripción
Habilite la impresión de subíndices.
ssubm ZN
modalidad_superíndice
Habilitar impresión de superíndice.
ssupm ZO
entr_topline_mode
Inicia la modalidad de línea superior. Esta prestación de serie es una ayuda para dibujar tablas y sólo es válida para las definiciones de terminal aixterm y aixterm-m .
Topl tp
modalidad_de_de_de_ent_
Inicia la modalidad de subrayado.
Smul es
modalidad_upward_enter
Habilite el movimiento del carro hacia arriba.
sum PZ
modo_entorno_x
Active el reconocimiento xon/xoff.
Smxon SX
borrar_caracteres
Borra #1 caracteres. (G)
Ech ec
Salir del modo de juego de caracteres
Finaliza el juego de caracteres alternativo.
rmacs AE
modalidad_salida
Desactive los márgenes automáticos.
Rmam RA
modalidad_atributo_salida
Inhabilita todos los atributos.
sgr0 yo
modalidad_ca_salida
Finaliza los programas que utilizan el direccionamiento taza .
rmcup TE
modalidad_supresión_salida
Finaliza la modalidad de supresión.
rmdc ed
modalidad_doble_salida
Inhabilite la impresión de doble ancho.
rwidm ZQ
modalidad_inserción_salida
Finaliza la modalidad de inserción.
Rmir EI
modo_italics_salida
Inhabilite la cursiva.
ritmo ZR
modalidad_izquierda_salida
Habilite el movimiento del carro a la derecha (normal).
rlm SZ
modalidad_micro_salida
Inhabilite las prestaciones de micro movimiento.
micm TZ
modalidad_sombre_salida
Inhabilite la impresión de sombra.
rshm ZU
modalidad_salida_estándar
Finaliza la modalidad destacada.
rmso SE
modalidad_suscripción_salida
Inhabilite la impresión de subíndices.
rsubm ZV
modalidad_superperscripto_salida
Inhabilite la impresión de superíndice.
rsupm WURTZ
modalidad_de_de_de_salida
Finaliza la modalidad de subrayado.
rmul Ue
modalidad_actualización_salida
Habilite el movimiento de carro descendente (normal).
ron ZX
modo_xón_salida
Desactive el apretón de manos xon/xoff.
rmxon RX
pantalla_flash
Indica la campana visual (no puede mover el cursor).
Flash vb
pausa_arreglada
Pausa durante 2-3 segundos.
detener PA
flash_hook
Parpadee el gancho del conmutador.
gancho fh
font_0
Seleccione font 0.
font0 f0
font_1
Seleccione font 1.
font1 f1
font_2
Seleccione la fuente 2.
font2 f2
font_3
Seleccione la fuente 3.
font3 f3
font_4
Seleccione font 4.
font4 f4
font_5
Seleccione la fuente 5.
font5 f5
font_6
Seleccione font 6.
font6 f6
font_7
Seleccione font 7.
font7 f7
forra_formulario
Expulsa página (terminal de copia impresa). (*)
FF FF
línea_estado_origen
Devuelve de la línea de estado.
fsl FS
ventana_goto
Vaya a la ventana #1.
Wingo WG
Colgar
Teléfono colgado.
Zumbido hu
init_1string
Inicializa el terminal.
is1 i1
init_2string
Inicializa el terminal.
is2 es
init_3string
Inicializa el terminal.
is3 i3
archivo_inicio_entrada
Identifica el archivo que contiene series de inicialización largas de es .
if if
prog. init_prog
Localiza el programa para la inicialización.
iprog iP
colore_inicialización
Inicialice la definición de color.
initc IC
parta_inicialización
Inicializar par de colores.
initp IP
carácter_inserción
Inserta el carácter.
ich1 IC
línea_inserción
Añade una nueva línea en blanco. (*)
il1 al
insertar relleno
Inserta el relleno después del carácter insertado. (*)
ip ip
key_a1
Especifica la parte superior izquierda del teclado.
ka1 K1
key_a3
Especifica la parte superior derecha del teclado.
ka3 K3
acción_clave
Enviado por clave de acción.
kact kJ
key_b2
Especifica el centro del teclado.
kb2 K2
espacio_de_claves
Enviado por tecla de retroceso.
kbs kb
sube_clave
Clave inicial. KEY_BEG
kbeg @1
tabla_clave
Enviado por tecla de retroceso. KEY_BTAB
kcbt kB
key_c1
Especifica la parte inferior izquierda del teclado.
kc1 K4
key_c3
Especifica la parte inferior derecha del teclado.
kc3 K5
cancelación_clave
Cancelar clave. CANCELACIÓN_CLAVE
kcan @2
catab de claves
Enviado por la tecla de borrar todas las pestañas.
ktbc ka
borras_clave
Enviado por borrar pantalla o borrar clave.
kclr kC
cierre_clave
Tecla de cierre. CLAVE_CLAVE
kclo @3
mandato key_command
Clave de petición de mandato.
kcmd @4
panel de mandatos de clave
Tecla del panel de mandatos.
kcpn @7
copia_clave
Copiar clave. COPIA_DE_LA_CLAVE
kcpy @5
creación_clave
Crear clave. CREAR CLAVE
kcrt @6
tabla_clave
Enviado por tecla de tabulación de borrado.
kctab kt
clave_dc
Enviado por clave de supresión de caracteres.
kdch1 kD
clave_dl
Enviado por clave de línea de supresión.
kdl1 kL
tecla_ejecutar
Clave de solicitud.
kdo ki
tecla_abajo
Enviado por tecla de flecha abajo de terminal.
kcud1 kd
clave_eic
Enviado por Rmir o emir en modalidad de inserción.
krmir kM
final_clave
Clave de finalización. FIN_DE_CLAVE
Kend @7
entrada_clave
Especifique/envíe (no fiable). ENTÉRESE.
Kent @8
clave_eol
Enviado por clave de borrado a fin de línea.
Kel kE
clave_eos
Enviado por la tecla de borrar hasta el final de la pantalla.
( kS
salida_clave
Tecla de salida. KEY_EXIT.
kext @9
key_f0
Enviado por tecla de función F0.
kf0 k0
key_f1
Enviado por tecla de función F1.
kf1 k1
key_f2
Enviado por tecla de función F2.
kf2 k2
key_f3
Enviado por tecla de función F3.
kf3 k3
key_f4
Enviado por tecla de función F4.
kf4 k4
key_f5
Enviado por tecla de función F5.
kf5 k5
key_f6
Enviado por tecla de función F6.
kf6 k6
key_f35
Enviado por tecla de función 35. KEY_F (35)
kf35 FP
key_f36
Enviado por tecla de función 36. KEY_F (36)
kf36 FP
key_f37
Enviado por tecla de función 37. KEY_F (37)
kf37 FQ
key_f38
Enviado por tecla de función 38. KEY_F (38)
kf38 FR
key_f39
Enviado por tecla de función 39. KEY_F (39)
kf39 FS
key_f40
Enviado por tecla de función 40. KEY_F (40)
kf40 FT
key_f41
Enviado por la tecla de función 41. KEY_F (41)
kf41 FU
key_f42
Enviado por tecla de función 42. KEY_F (42)
kf42 FV
key_f43
Enviado por la tecla de función 43. KEY_F (43)
kf43 FW
key_f44
Enviado por la tecla de función 44. KEY_F (44)
kf44 FX
key_f45
Enviado por la tecla de función 45. KEY_F (45)
kf45 Año fiscal
key_f46
Enviado por tecla de función 46. KEY_F (46)
kf46 FZ
key_f47
Enviado por tecla de función 47. KEY_F (47)
kf47 FA
key_f48
Enviado por tecla de función 48. KEY_F (48)
kf48 Fb
key_f49
Enviado por tecla de función 49. KEY_F (49)
kf49 Fc
key_f50
Enviado por tecla de función 50. KEY_F (50)
kf50 fd
key_f51
Enviado por tecla de función f51. KEY_F (51)
kf51 FE
key_f52
Enviado por tecla de función f52. KEY_F (52)
kf52 FF
key_f53
Enviado por tecla de función f53. KEY_F (53)
kf53 FG
key_f54
Enviado por tecla de función f54. KEY_F (54)
kf54 fi
key_f55
Enviado por tecla de función f55. KEY_F (55)
kf55 FJ
key_f56
Enviado por tecla de función f56. KEY_F (56)
kf56 Fk
key_f57
Enviado por tecla de función f57. KEY_F (57)
kf57 FL
key_f58
Enviado por tecla de función f58. KEY_F (58)
kf58 FM
key_f59
Enviado por tecla de función f59. KEY_F (59)
kf59 FN
key_f60
Enviado por tecla de función f60. KEY_F (60)
kf60 FO
key_f61
Enviado por tecla de función f61. KEY_F (61)
kf61 FP
key_f62
Enviado por tecla de función f62. KEY_F (62)
kf62 FQ
key_f63
Enviado por tecla de función f63. KEY_F (63)
kf63 Vi
búsqueda de claves
Buscar clave. KEY_FIND
kfnd @0
ayuda_clave
Clave de ayuda.
khlp kq
inicio_clave
Enviado por clave de inicio.
Khome kh
key_ic
Enviado por clave insert-character/ enter-insert-mode.
kich1 kI
clave_il
Enviado por la tecla de línea de inserción.
kil1 kA
clave_izquierda
Enviado por tecla de flecha izquierda de terminal.
kcub1 KL
clave_ll
Enviado por tecla de inicio.
Kll kH
marcar_clave
Marcar clave. KEY_MARK
kmrk %2
mensaje_clave
Clave de mensaje. MENSAJE_CLAVE
kmsg %3
mover_clave
Mover tecla. MOVIMIENTO CLAVE
kmov %4
tecla_nueva_línea
Clave de nueva línea.
Knl kn
clave_siguiente
Siguiente clave de objeto. CLAVE_SIGUIENTE
knxt %5
panel key_next_pane
Tecla de panel siguiente.
knpn kv
página_clave
Enviado por clave de página siguiente.
knp kN
apertura de clave
Abrir clave. KEY_OPEN
kopn %6
opciones_clave
Clave de opciones. OPCIONES CLAVE
kopt %7
página_clave
Enviado por clave de página anterior.
kpp kP
panel de prev_clave
Enviado por clave de panel anterior.
kppn kV
tecla_comando_anterior
Enviado por la tecla de mandato anterior.
kpcmd kp
clave_anterior
Clave de objeto anterior. KEY_ANTERIOR
kprv %8
imprimir_clave
Imprimir o copiar. KEY_PRINT
kprt %9
tecla_salir
Salir de la clave.
kquit kQ
redo_clave
Clave de rehacer. KEY_REDO
krdo %0
referencia_clave
Clave de referencia. REFERENCIA_CLAVE
kref &1
KEY_REFRESH
Clave de renovación. KEY_REFRESH
krfr &2
sustituir_clave
Sustituir clave. SUSTITUCIÓN_CLAVE
krpl &3
reinicio_clave
Clave de reinicio. REINICIO_CLAVE
krst &4
currículum
Clave de reanudación. CURRÍCULUM
kres &5
derecho_clave
Enviado por tecla de flecha derecha de terminal.
kcuf1 kr
guardar_clave
Guardar clave. KEY_SAVE
ksav &6
sbeg de clave
Tecla de inicio desplazada. KEY_SBEG
kBEG &9
clave_scancel
Tecla de cancelación desplazada. CLAVE_SCANCEL
kCAN &0
mandato key_scommand
Tecla de mandato desplazada. KEY_SCOMMAND
kCMD *1
scopía de claves
Clave de copia desplazada. KEY_SCOPY
kCPY *2
screate de claves
Clave de creación desplazada. CREAR_CLAVE
kCRT *3
tecla_desplazamiento_izquierda
Desplácese a la izquierda.
kscl kz
tecla_desplazar_derecha
Desplácese a la derecha.
kscr kZ
clave_sdc
Clave de carácter de supresión desplazada. KEY_SDC
kDC *4
clave_sdl
Clave de línea de supresión desplazada. KEY_SDL
kDL *5
selección_clave
Seleccione la clave.
Kslt *6
envío_clave
Clave final desplazada. KEY_SEND
kEND *7
seol_clave
Tecla de borrado de línea desplazada. KEY_SEOL
kEOL *8
clave_sexit
Clave de salida desplazada. KEY_SEXIT
kEXT *9
clave_sf
Enviado por la tecla de desplazamiento hacia adelante/desplazamiento hacia abajo.
tipo kF
key_sf1
Tecla de función especial 1.
ksf1 S1
key_sf2
Tecla de función especial 2.
ksf2 S2
key_sf3
Tecla de función especial 3.
ksf3 S3
key_sf4
Tecla de función especial 4.
ksf4 S4
key_sf5
Tecla de función especial 5.
ksf5 S5
key_sf6
Tecla de función especial 6.
ksf6 S6
key_sf7
Tecla de función especial 7.
ksf7 S7
key_sf8
Tecla de función especial 8.
ksf8 S8
key_sf9
Tecla de función especial 9.
ksf9 S9
key_sf10
Tecla de función especial 10.
ksf10 S0
búsqueda de claves
Clave de búsqueda desplazada. KEY_SFIND
kFND *0
llaver_llavero
Clave de ayuda desplazada. KEY_SHELP
kHLP #1
clave_shome
Clave de inicio desplazada. KEY_SHOME
kHOM #2
clave_sic
Clave de entrada desplazada. KEY_SIC
kIC #3
clave_sleft
Tecla de flecha izquierda desplazada. KEY_SLEFT
kLFT #4
key_smap_in1
Entrada para clave correlacionada especial 1.
kmpf1 KV
key_smap_in2
Entrada para clave correlacionada especial 2.
kmpf2 Kw
key_smap_in3
Entrada para la clave correlacionada especial 3.
kmpf3 KX
key_smap_in4
Entrada para clave correlacionada especial 4.
kmpf4 Ky
key_smap_in5
Entrada para la clave correlacionada especial 5.
kmpf5 KZ
key_smap_in6
Entrada para la clave correlacionada especial 6.
kmpf6 kr
key_smap_in7
Entrada para la clave correlacionada especial 7.
kmpf7 K
key_smap_in8
Entrada para clave correlacionada especial 8.
kmpf8 Kt
key_smap_in9
Entrada para clave correlacionada especial 9.
kmpf9 Ku
key_smap_out1
Salida para la clave correlacionada 1.
kmpt1 KV
key_smap_out2
Salida para la clave correlacionada 2.
kmpt2 KWh
key_smap_out3
Salida para la clave correlacionada 3.
kmpt3 KX
key_smap_out4
Salida para la clave correlacionada 4.
kmpt4 KY
key_smap_out5
Salida para la clave correlacionada 5.
kmpt5 KZ
key_smap_out6
Salida para la clave correlacionada 6.
kmpt6 kr
key_smap_out7
Salida para la clave correlacionada 7.
kmpt7 KS
key_smap_out8
Salida para la clave correlacionada 8.
kmpt8 KT
key_smap_out9
Salida para la clave correlacionada 9.
kmpt9 KU
mensaje_clave
Clave de mensaje desplazado. MENSAJE_CLAVE
kMSG %a
tecla_desplazar
Tecla de movimiento desplazada. KEY_SMOVE
kMOV %b
clave_snext
Clave siguiente desplazada. KEY_SNEXT
kNXT %c
sopciones_clave
Tecla de opciones de desplazamiento. KEY_SOPTIONS
kOPT %d
Claves_santerior
Clave anterior desplazada. KEY_ANTERIOR
kPRV %e
sprint de clave
Tecla de impresión desplazada. KEY_SPRINT
kPRT %f
s_clave
Enviado por la tecla de desplazamiento hacia atrás.
kri kR
redo_clave
Clave de rehacer desplazada. KEY_SREDO
kRDO %g
sustituir_clave
Tecla de sustitución desplazada. SUSTITUCIÓN_CLAVE
kRPL %h
derecho_clave
Tecla de flecha derecha desplazada. KEY_SRIGHT
kRIT %i
key_srsume
Clave de reanudación desplazada. KEY_SRSUME
kRES %j
clave_ssave
Tecla de guardado desplazada. KEY_SSAVE
kSAV !1
suspensión_claves
Clave de suspensión desplazada. KEY_SSUPEND
kSPD !2
clave_stab
Enviado por tecla set-tab.
khts kT
clave_sundo
Tecla de deshacer desplazada. KEY_SUNDO
kUND !3
suspensión_clave
Clave de suspensión. SUSPENSIÓN_CLAVE
kspd &7
tabla_clave
Tecla de tabulación.
ktab ko
deshecho de clave
Deshacer clave. KEY_UNDO
kund &8
tecla arriba
Enviado por tecla de flecha arriba de terminal.
kcuu1 Ku
teclado_local
Finaliza la modalidad de transmisión del teclado.
rmkx Ke
teclado_xmit
Coloca el terminal en modalidad de transmisión de teclado.
Smkx k
lab_f0
La tecla de función de etiquetas F0, si no es F0.
lf0 l0
lab_f1
La tecla de función de etiquetas F1, si no es F1.
lf1 l1
lab_f2
La tecla de función de etiquetas F2, si no es F2.
lf2 l2
lab_f3
La tecla de función de etiquetas F3, si no es F3.
lf3 l3
lab_f4
La tecla de función de etiquetas F4, si no es F4.
lf4 l4
lab_f5
La tecla de función de etiquetas F5, si no es F5.
lf5 l5
lab_f6
La tecla de función de etiquetas F6, si no es F6.
lf6 l6
lab_f7
La tecla de función de etiquetas F7, si no es F7.
lf7 l7
lab_f8
La tecla de función de etiquetas F8, si no es F8.
lf8 l8
lab_f9
La tecla de función de etiquetas F9, si no es F9.
lf9 l9
lab_f10
La tecla de función de etiquetas F10, si no es F10.
lf10 la
formato_etiqueta
Formato de etiqueta.
fln LF
etiqueta_desactivada
Desactive las etiquetas blandas.
rmln LF
etiqueta_encendido
Active las etiquetas blandas.
Smln LO
meta_ón
Habilita el modo meta (octavo bit).
smm mm
meta_off
Inhabilita la modalidad meta.
rmm mo
dirección_columna_micro
Mueva N pasos desde la izquierda.
Mhpa SZ
micro_abajo
Mover 1 paso hacia abajo.
mcud1 ZZ
micro_izquierda
Mover 1 paso a la izquierda.
mcub1 A
micro_derecha
Mover 1 paso a la derecha.
mcuf1 Zb
dirección_de_fila
Mueva N pasos desde la parte superior.
mvpa CZ
micro_arriba
Mover 1 paso hacia arriba.
mcuu1 ZD
nueva línea
Realiza la función de nueva línea (se comporta como retorno de carro seguido por salto de línea).
Nel NW
orden_de_los_pines
Compara los bits de software con las patillas de la cabeza de impresión.
Porder Ze
colores de origen
Colores originales.
oc oc
pares de origen
Par de colores original.
op op
car_padr
Caracteres de relleno (en lugar de NULL).
pad pc
parm_dch
Suprime #1 caracteres. (G)
Dch DC
parm_eliminar_línea
Suprime #1 líneas. (G)
DL DL
parm_down_cursor
Mueve el cursor hacia abajo #1 líneas. (G*)
CUD DO
parm_de_micro
Mover N pasos hacia abajo. (G*)
mcud ZF
parm_ich
Inserta #1 caracteres en blanco. (G*)
ich IC
index_parámetro
Desplaza hacia adelante #1 líneas. (G)
indn SF
parm_insertar_línea
Añade #1 nuevas líneas en blanco. (G*)
il AL
cursor_izquierdo_parm
Mueve el cursor a la izquierda #1 espacios. (G)
Cachorro LE
parm_izquierda_micro
Mueva N pasos a la izquierda.
Mcub ZG
cursor_derecha_parm
Mueve el cursor a la derecha #1 espacios. (G*)
Cuf RI
parm_derecha_micro
Mueva los pasos de N a la derecha.
mcuf zh
índice de parm
Desplaza hacia atrás #1 líneas. (G)
RIN SR
parm_up_cursor
Mueve el cursor hacia arriba #1 líneas. (G*)
Cuu UP
parm_up_micro
Mueva N pasos hacia arriba.
mcuu Zi
clave_clave
Tecla de función de programas #1 para escribir serie #2.
clavePf pk
pkey_local
Tecla de función de programas #1 para ejecutar la serie #2.
pfloc pl
pkey_xmit
Tecla de función de programas #1 para transmitir la serie #2.
pfx px
norma_plab
Etiqueta de programa #1 para mostrar la serie #2.
pln PN
pantalla_impresión
Imprime el contenido de la pantalla.
mc0 ps
prtr_no
Habilita la impresora para #1 bytes.
mc5p pO
prtr_off
Inhabilita la impresora.
mc4 PF
prtr_on
Habilita la impresora.
mc5 po
Pulsos
Seleccione la marcación de pulsos.
Pulsos PU
marcación rápida
Marque el número de teléfono #1, sin detección de progreso.
qdial DC
reloj remove_clock
Elimine el reloj de hora del día.
rmclk RC
car_repetitiva
Repite #1 carácter #2 veces. (G*)
representante RP
req_for_input
Enviar siguiente carácter de entrada (para pty's).
Rfi FR
reset_1string
Restablece el terminal a las modalidades conocidas.
rs1 r1
reset_2string
Restablece el terminal a las modalidades conocidas.
rs2 r2
reset_3string
Restablece el terminal a las modalidades conocidas.
rs3 r3
archivo_restablecimiento
Identifica el archivo que contiene la serie de restablecimiento.
rf rf
cursor restore_cursor
Restaura el cursor a la posición del último sc (save_cursor).
rc rc
dirección_fila
Coloca el cursor en una posición vertical absoluta (establecer fila). (G)
vpa CV
guardar_cursor
Guarda la posición del cursor.
SC SC
desplazar_hacia adelante
Desplaza el texto hacia arriba.
ind SF
desplazamiento_inverso
Desplaza el texto hacia abajo.
ri sr
selección_conjunto de caracteres
Seleccione el juego de caracteres.
scs ZJ
atributos_conjunto
Define los atributos de vídeo. (G) N.º 1-N.º 9
Gr sa
conjunto_fondo
Establezca el color de fondo.
Setb Sb
establecer_margen_inferior
Establecer margen bottojm suave en la línea actual.
Smgb ZK
establecer_margen_inferior_parámetro
Establecer margen inferior flexible.
Smgbp ZL
reloj de conjunto
Establecer reloj de hora del día.
sclk SC
conjunto_pares de colores
Establecer par de colores.
scp sp
establecer_primer plano
Establecer color de primer plano.
Setf SF
establecer_margen_izquierdo
Establecer margen izquierdo flexible.
Smgl ML
establecer_margen_izquierdo_parámetro
Establecer margen izquierdo flexible.
Smglp ZM
establecer_margen_derecho
Establecer margen derecho flexible.
Smgr MR
establecer_margen_derecho_parámetro
Establecer margen derecho flexible.
Smgrp ZN
tabulador_conjunto
Establece una pestaña en cada fila de la columna actual.
hts 1
establecer_margen_superior
Establecer el margen superior en la línea actual.
Smgt ZOO
establecer_margen_superior_parámetro
Establecer margen superior flexible.
Smgtp ZP
ventana_conjunto
Indica que la ventana actual es líneas #1-#2, columnas #3-#4. (G)
viento Wi
imagen-bit_inicio
Inicie la impresión de gráficos de imagen de bits.
sbim ZQ
iniciar_conjunto_de_caracteres_def
Definición inicial de un juego de caracteres.
scsd ZR
imagenes de bits de detención
Finalizar impresión de gráficos de imagen de bits.
rbim SZ
detener_conjunto_caracteres_def
Definición final de un juego de caracteres.
rcsd Zt
carácter_suscripción
Lista de caracteres que pueden aparecer en el subíndice.
subprocesos ZU
carácter_superíndice
Lista de caracteres que pueden aparecer en superíndice.
sucs ZV
tabulador
Tabuladores para la siguiente parada de pestaña de hardware de 8 espacios.
ht ta
estas_causan_cr
La impresión de cualquiera de estos caracteres provoca un retorno de carrito.
docr ZKW
Tonos
Seleccione marcación de tono táctil.
Tonos A
línea_estado_to_estado
Se mueve a la línea de estado, columna #1. (G)
Tsl TS
car_subrayado
Subraya un carácter y se mueve más allá de él.
uc uc
mitad_superior_de_la_línea
Indica superíndice (invertir 1/2 salto de línea)
hu hu
user0
Serie de usuario 0.
u0 u0
user1
Serie de usuario 1.
u1 u1
user2
Serie de usuario 2.
u2 u2
user3
Serie de usuario 3.
u3 u3
user4
Serie de usuario 4.
u4 u4
user5
Serie de usuario 5.
u5 u5
user6
Serie de usuario 6.
u6 u6
user7
Serie de usuario 7.
u7 u7
user8
Serie de usuario 8.
u8 u8
user9
Serie de usuario 9.
u9 u9
tono de espera
Esperar tono de marcación.
Wiat WA
carácter_x
Carácter X-off.
Xoffc XF
carácter_xon
Carácter de X-on.
Xonc XN
moto_cero
No hay movimiento para el carácter subsiguiente.
cero ZX

Preparando descripciones

Puede crear una descripción de terminal copiando y, a continuación, modificando la descripción de un terminal similar. Puede comprobar la precisión de sus descripciones parciales con el editor vi. Algunos terminales pueden revelar errores en el editor vi, así como deficiencias en la capacidad de la base de datos terminfo para proporcionar una descripción de terminal.

Para probar una nueva descripción de terminal, establezca la variable de entorno TERMINFO en el nombre de vía de acceso del directorio que contiene la descripción compilada en la que está trabajando. A continuación, los programas comprueban ese directorio en lugar del directorio /usr/share/lib/terminfo .

Para comprobar si el relleno es correcto (si se conoce), haga lo siguiente:

  1. Edite el archivo /etc/passwd en 9600 baudios.
  2. Suprima unas 16 líneas del centro de la pantalla.
  3. Pulse la tecla u varias veces rápidamente.
    Si el terminal no puede visualizar el resultado correctamente, normalmente se necesita más relleno. Puede realizar una prueba similar para el carácter de inserción.
    Nota: El relleno excesivo ralentiza el terminal.

Prestaciones básicas

En esta sección se describen algunas prestaciones de terminal básicas. Si un terminal da soporte a una de estas prestaciones, la entrada del archivo de origen terminfo del terminal lo indica. La lista siguiente es una lista de prestaciones básicas:

Elemento Descripción
a.m. Indica que el cursor se mueve al principio de la siguiente línea cuando alcanza el margen derecho. Esta capacidad también indica si el cursor puede moverse más allá de la esquina inferior derecha de la pantalla.
BEL Produce una señal audible (como una campana o un pitido).
bw Indica que un retroceso desde el borde izquierdo del terminal mueve el cursor a la última columna de la fila anterior.
Borrar Borra la pantalla, dejando el cursor en la posición inicial.
COLS Especifica el número de columnas en cada línea para el terminal.
cr Mueve el cursor al borde izquierdo de la fila actual. Este código suele ser de retorno de carro (Ctrl-M).
cub1 Mueve el cursor un espacio a la izquierda, como por ejemplo un retroceso.
cuf1 Mueve el cursor al espacio derecho.
cuu1 Mueve el cursor hacia arriba un espacio.
cud1 Mueva el cursor hacia abajo un espacio.
hc Especifica un terminal de impresión sin unidad de copia software. También debe especificar la prestación os .
ind Desplaza el texto hacia arriba.
LF Especifica un salto de línea.
líneas Especifica el número de líneas en un terminal de tubo de rayos catódicos (CRT).
Nel Especifica una nueva línea. El terminal se comporta como si recibiera un retorno de carro seguido de un salto de línea.
os Indica que cuando un carácter se visualiza o se imprime en una posición ya ocupada por otro carácter, el terminal sobrescribe el carácter existente, en lugar de sustituirlo por el carácter nuevo. La prestación os se aplica al ámbito de almacenamiento, a la impresión y a los terminales APL .
ri Desplaza el texto hacia abajo.

Si se establecen las variables de entorno LINES y COLUMNS, estas variables alteran temporalmente los valores de la base de datos de terminfo .

Los movimientos del cursor local codificados en los archivos de base de datos terminfo no están definidos en los bordes izquierdo y superior de un terminal CRT. Los programas nunca deben intentar retroceder alrededor del borde izquierdo (a menos que se especifique la serie bw ) o subir localmente fuera de la parte superior.

Para desplazar el texto hacia arriba, un programa debe ir a la esquina inferior izquierda de la pantalla y enviar la serie de índice. Para desplazar el texto hacia abajo, un programa va a la esquina superior izquierda de la pantalla y envía la serie de índice inverso. La serie de índice se especifica mediante la prestación Ind y la serie de índice inverso se especifica mediante la prestación ri . La serie de índice y la serie de índice inverso no están definidas cuando no están en sus respectivas esquinas de la pantalla.

La función am determina si el cursor se pega en el borde derecho de la pantalla cuando se genera el texto, pero esto no se aplica necesariamente cuando el cursor se mueve a la derecha (la función cuf1 ) desde la última columna. Un terminal tiene movimiento local desde el borde izquierdo sólo si se ha definido la prestación bw . A continuación, el cursor va al borde derecho de la fila anterior cuando se mueve a la izquierda (la prestación cub1 ) desde el borde izquierdo. Si el terminal no tiene la capacidad bw , el efecto no está definido, lo que es útil para dibujar un recuadro alrededor del borde de la pantalla, por ejemplo.

Un terminal tiene márgenes automáticos seleccionables por conmutador si se especifica la prestación am . Si el terminal tiene un mandato que se desplaza a la primera columna de la siguiente línea, puede definir la prestación Nel (nueva línea). No importa si el mandato borra el resto de la línea actual. Por lo tanto, si el terminal no tiene cr y lf, un Nel en funcionamiento todavía se puede diseñar a partir de uno de ellos o de ambos.

Estas capacidades son suficientes para describir terminales de impresión y terminales CRT simples. Por lo tanto, el modelo 33 Teletype se describe como:
33 | tty33 | tty | Model 33 Teletype
         bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os, xon,
Otro terminal se describe como:
xxxx | x | xxxxxxxx,
        am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
        ind=^J, lines#24,

Series parametrizadas

El direccionamiento de cursor y otras series que requieren parámetros se describen mediante prestaciones de serie parametrizada. Estas series tienen secuencias de escape similares al formato printf %x . Por ejemplo, para direccionar el cursor, especifique la prestación taza utilizando los parámetros de fila y columna.

Las prestaciones parametrizadas incluyen:

Elemento Descripción
cub1 Retrocede el cursor un espacio.
taza Dirige el cursor utilizando los parámetros de fila y columna. Las filas y columnas se numeran empezando por 0 y hacen referencia a la pantalla física visible para el usuario, no a la memoria.
HPA y vpa Indica que el cursor tiene direccionamiento de cursor absoluto de fila o columna: absoluto de posición horizontal (HPA) o absoluto vertical (vpa).

A veces, las prestaciones HPA y vpa son más cortas que la secuencia de dos parámetros más general y puede utilizarlas en lugar de la prestación taza . Los movimientos locales parametrizados (como, por ejemplo, un movimiento de espacios de n a la derecha) se definen con las prestaciones Cud, Cachorro, Cufy Cuu , con un único parámetro que indica cuántos espacios se deben mover. Estas prestaciones son principalmente útiles si el terminal no tiene la prestación taza .

Indn y rin Desplaza el texto. Estas son versiones parametrizadas de las prestaciones básicas de Ind y ri . El valor n es un número de líneas.
Mrcup Indica que el terminal tiene direccionamiento de cursor relativo a la memoria.

El mecanismo de parámetro utiliza una pila y tiene códigos % (signo de porcentaje) especiales para manipular la pila. Normalmente, una secuencia envía uno de los parámetros a la pila y, a continuación, lo imprime en algún formato. A menudo, son necesarias operaciones más complejas. Las codificaciones tienen los significados siguientes:

Elemento Descripción
%% Genera un % (signo de porcentaje).
% [[:] Distintivos] [Ancho [.Precisión]] [doxXs] Al igual que en el mandato imprf , los distintivos son [- + # ] y el espacio.
%d Imprime pop () como en el mandato imprf (serie numérica de la pila).
%2d Imprime pop () como %2d (salida mínima de 2 dígitos de la pila).
%3d Imprime pop () como %3d (salida mínima de 3 dígitos de la pila).
%02d Imprime como en el mandato imprf (salida de 2 dígitos).
%03d Se imprime como en el mandato imprf (salida de 3 dígitos).
%c Imprime pop () proporciona %c (salida de caracteres de la pila).
%s Imprime pop () proporciona %s (salida de serie de la pila).
%p [i] Envía el parámetro ia la pila donde i es un número entre 1 y 9.
%P [a-z] Establece la variable [a-z] en pop () (salida de variable de la pila).
%g [a-z] Obtiene la variable [a-z] y la envía a la pila.
%' c' Constante de tipo carácter c.
%{nn} Constante entera nn.
%l Empujar strlen (pop ())
% +%-% *%/%m Operadores aritméticos (%m es módulo): push (pop () operación pop ()).
%& %| %^ Operaciones de bits: push (pop () operación pop ()).
%= %> %< Operaciones lógicas: push (pop () operación pop ()).
%! %~ Operaciones unarias: push (operación pop ()).
%i Añada 1 a los dos primeros parámetros (para terminales ANSI).
%?expr %t thenpart %e elsepart%; Si-entonces-si no. El %e Elsepart es opcional. Puede crear una construcción else-if como con Algol 68 en el ejemplo siguiente, donde ci denota condiciones y cuerpos Bibi .
%? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e b4 %;

Las operaciones binarias están en formato de postfijo con los operandos en el orden habitual. Es decir, para obtenerx - 5uso%gx%{5}%-.

Si utiliza el distintivo-(signo menos) con%[doxXs], a continuación, debe colocar un signo de dos puntos entre el% (signo de porcentaje) y el signo-(signo menos) para diferenciar el distintivo del signo%-operación binaria, por ejemplo,%:-16.16s.

Considerar un terminal que necesita ser enviado\E&a12c03Yrellenado durante 6 milisegundos para llegar a la fila 3 y a la columna 12. Aquí se invierte el orden de las filas y columnas, y la fila y la columna se rellenan con ceros como dos dígitos. Por lo tanto, la prestación de taza de este terminal escup=\E&a%p2%2.2dc%p1%2.2dY$<6>.

Algunos terminales necesitan la fila y columna actuales enviadas, precedidas por un ^ T, con la fila y columna codificadas en binario:cup=^T%p1%c%p2%c. Los terminales que utilizan %c deben poder retroceder el cursor (cub1) y mover el cursor una línea hacia arriba en la pantalla (cuu1). Esto es necesario porque no siempre es seguro transmitir los caracteres \n, ^ Dy \r , ya que el sistema puede cambiarlos o descartarlos.
Nota: Las rutinas de biblioteca que tratan con los archivos de base de datos terminfo establecen modalidades de terminal para que el sistema operativo no expanda las pestañas; por lo tanto, \t (pestaña) es seguro de enviar.

Un ejemplo final es un terminal que utiliza el desplazamiento de fila y columna mediante un carácter en blanco:cup=\E=%p1%'\s'%+%c%p2'\s'%+%c. Después de enviar\E=, esta operación envía el primer parámetro, envía el valor ASCII para un espacio (32), los añade (empujando la suma en la pila en lugar de los dos valores anteriores) y genera ese valor como un carácter. A continuación, se hace lo mismo para el segundo parámetro. La aritmética más compleja es posible utilizando la pila.

Mociones de cursor

La esquina superior izquierda de la pantalla es la posición de inicio. Si el terminal tiene una forma rápida de situar el cursor en la posición inicial, especifique la capacidad inicio . Especifique una forma rápida de llegar a la esquina inferior izquierda con la prestación 11 . Este método puede implicar subir (cuu1) desde la posición de inicio, pero un programa nunca debe hacerlo por sí mismo (a menos que 11 lo haga) porque el efecto de subir desde la posición de inicio no es seguro.

Nota: La posición inicial es la misma que direccionar (0, 0) a la esquina superior izquierda de la pantalla, no de memoria.

Si el terminal tiene direccionamiento de cursor absoluto de fila o columna, debe especificar la prestación HPA única (posición horizontal anterior) y la prestación vpa (posición vertical absoluta). A veces son más cortos que la secuencia de dos parámetros más general y puede utilizarlos en lugar de la prestación taza .

Si el terminal tiene movimientos locales parametrizados, por ejemplo, es capaz de mover el cursor n espacios a la derecha, puede especificar las prestaciones Cud, Cachorro, Cufy Cuu con un único parámetro que indica cuántos espacios se deben mover. Estas prestaciones son útiles si el terminal no tiene la prestación taza .

Borrado de área

Las prestaciones siguientes borra grandes áreas del terminal:

Elemento Descripción
ed Borra desde la posición actual hasta el final de la pantalla. Sólo se define desde la primera columna de una línea. (Por lo tanto, se puede simular mediante una solicitud para suprimir un gran número de líneas, si un A verdadero no está disponible.)
el Borra desde la posición actual del cursor hasta el final de la línea sin mover el cursor.
el1 Borra desde el principio de la línea hasta la posición actual, inclusive. El cursor no se mueve.

desplazamiento

Las siguientes prestaciones de línea de inserción y línea de supresión se utilizan para indicar que un terminal puede:

Elemento Descripción
CSR Cambie la región de desplazamiento. Esta prestación toma dos parámetros: las líneas superior e inferior de la región de desplazamiento. La línea superior de la pantalla es 0. Después de utilizar esta función, la posición del cursor no está definida. Consulte las prestaciones de sc y cr en esta sección.
DA Mantenga la visualización encima de la pantalla. Si se suprime una línea o se desplaza la pantalla, se pueden incorporar líneas que no estén en blanco en la parte superior. Esta capacidad se suele definir para terminales de varias páginas.
db Mantenga la visualización debajo de la pantalla. Si se suprime una línea o la pantalla se desplaza hacia atrás, el terminal puede poner las líneas que no están en blanco en la parte inferior. Esta capacidad se suele definir para terminales de varias páginas.
dl1 Suprima la línea en la que se encuentra el cursor. Esto se realiza sólo desde la primera posición de la línea que se va a suprimir. Además, la prestación dl toma un único parámetro que indica el número de líneas que se van a suprimir.
il1 Cree una nueva línea en blanco antes de la línea donde se encuentra actualmente el cursor y desplace el resto de la pantalla hacia abajo. Esto se hace sólo desde la primera posición de una línea. A continuación, el cursor aparece en la línea en blanco. Además, la prestación 1. puede tomar un único parámetro que indica el número de líneas a insertar.
ind Indexe o desplácese hacia adelante. Un terminal con esta capacidad puede desplazar la visualización hacia arriba una línea suprimiendo la línea superior y añadiendo una línea en blanco en la parte inferior.
indn Especifique el número de líneas para desplazarse hacia delante. Esta prestación sólo tiene significado si la prestación Ind también está definida.
rc Restaure el cursor. Esta prestación es útil con las prestaciones csr y sc .
ri Desplazamiento inverso. Con esta prestación, el terminal puede desplazar la pantalla hacia abajo suprimiendo la línea inferior y añadiendo una línea en blanco en la parte superior.
RIN Especifique el número de líneas para invertir el desplazamiento. Esta prestación sólo tiene significado si también se ha definido la prestación ri .
SC Guarde el cursor. Si está definido, puede utilizar la función sc para guardar el cursor antes de utilizar la función csr . Guardar el cursor es necesario porque la posición del cursor no está definida después de utilizar la función csr . Utilice la función cr para restaurar el cursor a la posición que tenía antes de utilizar la función csr .
viento Indica que el terminal tiene la capacidad de definir una ventana como parte de la memoria. Se trata de una función de serie parametrizada con cuatro parámetros: las líneas de inicio y finalización en la memoria y las columnas de inicio y finalización en la memoria, en ese orden.

Un terminal que tenga la capacidad csr puede desplazarse por parte de su pantalla mientras deja sin tocar otras líneas por encima y por debajo de la región. Un desplazamiento hacia adelante aplicado a una región suprime la parte superior de la región, desplaza y añade una línea a la parte inferior de la región. Cuando haya terminado con la región de desplazamiento, debe utilizar la función csr para restaurar la región de desplazamiento a la pantalla completa.

Asegúrese de mover el cursor a la región de desplazamiento con la prestación taza antes de intentar desplazar la región. No debe mover el cursor de la región hasta que haya terminado con él.
Nota: Si está utilizando una prestación csr de terminales, es posible que también tenga que utilizar la prestación sc y cr .

Los terminales que tienen definido csr tienen una región de desplazamiento destructivo. Una vez que una línea se desplaza fuera de la pantalla, el terminal no puede recuperarla. Un terminal con una región de desplazamiento no destructivo puede restaurar las líneas desplazadas invirtiendo el desplazamiento. A menos que Ind, ri, indn, Rin, dly dl1 simulen el desplazamiento destructivo, no especifique la prestación csr si el terminal tiene regiones de desplazamiento no destructivas.

En terminales multipágina, el desplazamiento puede colocar una línea en otra página y el desplazamiento en la dirección opuesta devuelve la línea. De forma similar, la supresión de una línea puede hacer que una línea de otra página aparezca en la pantalla. Los terminales de varias páginas deben tener las prestaciones da y base de datos definidas para que el programa que utiliza el desplazamiento pueda ajustar su comportamiento.

Algunos terminales pueden definir una ventana como parte de la memoria. Para estos tipos de terminales, todos los mandatos de borrado, supresión, inserción y acomodación afectan al área de la memoria donde se define la ventana.

Insertar o suprimir carácter

Generalmente, los terminales manejan las operaciones de inserción/supresión de caracteres de una de dos maneras. Las operaciones de inserción/supresión de caracteres más comunes sólo afectan a los caracteres de la línea actual y a los caracteres de desplazamiento a la derecha y fuera de la línea. Otros terminales hacen una distinción entre espacios en blanco tecleados y no tecleados en la pantalla. Al insertar un carácter, los datos visualizados se desplazan y se elimina un espacio en blanco sin tipo. Una vez eliminados todos los espacios en blanco sin tipo, los datos visualizados se ajustarán a la siguiente línea si continúa insertando caracteres. Al suprimir un carácter, se añade un espacio en blanco sin tipo a la línea para compensar el carácter suprimido.

Generalmente, los terminales insertan/suprimen caracteres en modalidad de una línea o en modalidad de varias líneas. Los dos tipos de terminales también manejan los espacios sin tipo de forma diferente. La modalidad de una línea es la modalidad más común. En la modalidad de una línea, las operaciones de inserción/supresión de caracteres sólo afectan a los caracteres de la línea actual. Las inserciones desplazan los caracteres a la derecha y fuera de la línea.

Los terminales de modalidad multilínea pueden afectar a más de una línea. En esta modalidad, el terminal hace una distinción entre espacios en blanco escritos y no escritos en la pantalla. La inserción de un carácter en un terminal de modalidad multilínea desplaza los datos visualizados y elimina los espacios en blanco sin tipo. Si se eliminan todos los espacios en blanco sin tipo y continúa insertando caracteres, la pantalla se ajusta a la siguiente línea. Al suprimir un carácter, los terminales multilínea añaden un blanco sin tipo a la línea para compensar el carácter suprimido.

Determinación del tipo de terminal

Borrar una pantalla y, a continuación, escribir texto separado por movimientos del cursor le ayuda a determinar el tipo de operaciones de inserción/supresión que realiza el terminal. Borre la pantalla y, a continuación, haga lo siguiente:

  1. Tipoabc defutilizando movimientos de cursor locales, no espacios, entreabcy eldef.
  2. Coloque el cursor antes delabc.
  3. Coloque el terminal en modalidad de inserción.
  4. Escriba una línea de texto. Si la escritura provoca laabc defpara desplazar a la derecha y salir del lado derecho de la pantalla, el terminal no distingue entre espacios en blanco y posiciones sin tipo.

    Si el mandatoabcse mueve a posiciones a la izquierda inmediata deldefy los caracteres se mueven a la derecha en la línea, alrededor del final, y a la siguiente línea, el terminal es el segundo tipo. Esto se describe mediante la prestación en , que significa insertar nulo.

Aunque estos dos atributos (modalidad de inserción de una línea frente a multilínea y tratamiento diferente de los espacios sin tipo) están separados lógicamente, no hay terminales conocidos cuya modalidad de inserción no se pueda describir con un único atributo.

Insertar o suprimir prestaciones de caracteres

La base de datos terminfo describe los terminales que tienen una modalidad de inserción, así como los terminales que envían una secuencia simple para abrir una posición en blanco en la línea actual. Los siguientes se utilizan para describir las prestaciones de inserción/supresión de caracteres:

Elemento Descripción
dch1 Suprime un único carácter. La prestación Dch con un parámetro, n, suprime n caracteres.
Ech Sustituye el número de caracteres especificado, empezando por el cursor, por espacios en blanco. La posición del cursor permanece sin cambios.
ich1 Abre un espacio en una línea para que se inserte un carácter. Esta secuencia precede a la inserción de caracteres real. Los terminales con una modalidad de inserción verdadera no utilizarían esta función.
ip Indica que se necesita el relleno posterior. Se proporciona como un número de milisegundos. Cualquier otra secuencia que deba enviarse después de insertar un único carácter puede proporcionarse en esta función.
Mir Permite el movimiento del cursor mientras está en modalidad de inserción. A veces es necesario mover el cursor mientras se está en modalidad de inserción para suprimir caracteres en la misma línea. Es posible que algunos terminales no tengan esta capacidad debido a su manejo de la modalidad de inserción.
rmdc Sale de la modalidad de supresión.
Rmir Finaliza la modalidad de inserción.
Rmp Indica que el relleno es necesario entre caracteres escritos mientras no está en modalidad de inserción. Esta prestación se utiliza en modalidad de sustitución.
smdc Entra en modalidad de supresión.
emir Inicia la modalidad de inserción.

Si está creando una descripción terminfo para un terminal que requiere una modalidad de inserción y también necesita un código especial para preceder a cada carácter insertado, defina las prestaciones emir/rmry ich1 . La prestación ich , con un parámetro n, abre n espacios para que se puedan insertar n caracteres.

Resaltado, subrayado y campanas visuales

Si el terminal tiene uno o más tipos de atributos de visualización, como resaltado, subrayado y campanas visuales, puede presentarlos de varias maneras. El resaltado, como el modo destacado, presenta un formato de alto contraste y fácil de leer que añade énfasis a los mensajes de error y a otros mensajes importantes. El subrayado es otro método para enfocar la atención en una porción particular de la terminal. Las campanas visuales incluyen métodos como parpadear la pantalla. Las prestaciones siguientes describen el resaltado, el subrayado y las campanas visuales:

Parpadear
Indica que el terminal tiene modalidad de resaltado de parpadeo.
Negrita
Indica que el terminal tiene un modo de resaltado brillante adicional.
ciudadanos
Hace que el cursor sea invisible.
Cnorm
Muestra un cursor normal. Esta prestación invierte los efectos de las prestaciones civis y Cvvis .
Cvvis
Hace que el cursor sea más visible de lo normal cuando no está en la línea inferior.
tenue
Indica que el terminal tiene modos de resaltado medio brillante.
EO
Indica que los espacios en blanco borran los sobresaltos.
enacs
Especifica una serie de mandato que habilita la modalidad de juego de caracteres alternativo. Algunos terminales no pueden entrar en modalidad de juego de caracteres alternativo sin recibir primero un mandato específico. La prestación enacs define el mandato.
Flash
Indica que el terminal tiene una forma de hacer que la pantalla parpadee (como una sustitución de campana) para errores, sin mover el cursor.
invis
Indica que el terminal tiene modalidades de resaltado de texto en blanco o invisible.
gestor de mensajes
Indica que es seguro mover el cursor en modalidad destacada. De lo contrario, los programas que utilizan la modalidad destacada deben salir de esta modalidad antes de mover el cursor o enviar una línea nueva. Algunos terminales automáticamente dejan el modo destacado cuando se mueven a una nueva línea o cuando se dirige el cursor.
nrrmc
Indica que la secuencia Smcup no restaura la pantalla después de que se genere una secuencia rmcup . Esto significa que no puede restaurar la pantalla al estado anterior a la salida rmcup.
os
Indica que el terminal puede sobrescribir un carácter existente sin borrar el original. Si se sobrellama, se crea un carácter compuesto.
prot
Indica que el terminal tiene modalidad de texto protegido. Esto significa que el terminal protege el texto de la sobrescritura o borrado. El método de protección depende del terminal.
REV
Indica que el terminal tiene el modo de vídeo inverso.
rmacs
Sale de la modalidad de juego de caracteres alternativo.
rmso
Sale de la modalidad destacada.
rmul
Finaliza el subrayado.
Gr
Proporciona una secuencia para establecer combinaciones arbitrarias de atributos. La prestación Gr puede establecer nueve atributos. En orden, estos atributos son los siguientes:
  • destacada
  • subrayado
  • Parpadear
  • tenue
  • Negrita
  • en blanco
  • proteger
  • juego de caracteres alternativo

Para activar una modalidad, establézcala en un valor distinto de cero. Para desactivar un modo, establézcalo en 0. La prestación Gr sólo puede dar soporte a las modalidades para las que ya existen prestaciones separadas en el terminal.

sgr0
Vueltas de todos los modos especiales, incluyendo el juego de caracteres alternativo.
smacs
Entra en la modalidad de juego de caracteres alternativo.
smcup y rmcup
Indique que el terminal debe estar en una modalidad especial al ejecutar un programa que utilice cualquiera de las prestaciones de resaltado, subrayado o campana visual. La prestación Smcup entra en esta modalidad y la prestación rmcup sale de esta modalidad.

Esta necesidad surge, por ejemplo, con terminales que tienen más de una página de memoria. Si el terminal sólo tiene un direccionamiento de cursor relativo a la memoria, y no un direccionamiento de cursor relativo a la pantalla, se debe fijar una ventana de tamaño de pantalla en el terminal para que el direccionamiento de cursor funcione correctamente. También se utiliza cuando la función Smcup establece el carácter de mandato que utilizará el archivo de base de datos terminfo .

smso
Entra en modalidad destacada.
Smul
Empieza el subrayado.
uc
Subraya el carácter actual y mueve el cursor un espacio a la derecha.
UL
Indica que el terminal genera correctamente caracteres subrayados (sin códigos especiales necesarios), aunque no se sobrescriba.
xmc
Indica el número de espacios en blanco que quedan si la posibilidad de entrar o salir de la modalidad destacada deja espacios en blanco en la pantalla.

Resaltado, superación y subrayado

Debe elegir un método de visualización como modo destacado y utilizarlo para resaltar los mensajes de error y otros tipos de texto a los que desea llamar la atención. Por ejemplo, puede elegir el vídeo inverso más el vídeo medio brillante o el vídeo inverso por sí solo. Las secuencias para entrar y salir de la modalidad destacada las proporcionan las prestaciones smso y rmso . Si el código para cambiar a o fuera de la modalidad destacada deja uno o incluso dos espacios en blanco en la pantalla, se debe dar xmc para indicar cuántos espacios quedan.

Debe especificar la prestación booleana ul si el terminal genera caracteres subrayados utilizando el carácter de subrayado sin códigos especiales. Debe especificar esta posibilidad incluso si el terminal no sobrescribe los caracteres. Para los terminales en los que un carácter que sobrescribe a otro deja ambos caracteres en la pantalla, especifique la función os . Si el terminal puede borrar los sobresaltos con un espacio en blanco, indíquelo especificando la capacidad eo .

Ejemplo de utilización de la capacidad de sgr

El ejemplo siguiente muestra cómo utilizar la prestación Gr para activar varias modalidades. Supongamos que debe definir un terminal que requiera las siguientes secuencias de escape para activar varias modalidades:

Parámetro Terminfo Modo Secuencia de escape
ninguno \E[0m
p1 destacada \E[0;4;7m
p2 subrayado \E[0;3m
p3 invertir \E[0;4m
p4 Parpadear \E[0;5m
p5 tenue \E[0;7m
p6 Negrita \E[0;3:4m
p7 invis \E[0;8m
p8 proteger no disponible
p9 altcharset ^O(desactivado)^N(en)
Nota: Cada secuencia de escape requiere un 0 para desactivar otras modalidades antes de activar su propia modalidad.

Puede simular algunas modalidades combinando otras. En este ejemplo, la secuencia de escape de atributo destacada es una combinación de las secuencias invertir y tenue . Además, en el ejemplo, la secuencia negrita es una combinación de las secuencias invertir y subrayado . Para combinar modalidades como subrayado y parpadeo, la secuencia a utilizar sería\E[0;3;5m.

No puede simular determinadas modalidades combinando otras. Por ejemplo, no puede simular la modalidad proteger . En este ejemplo, el sistema ignora el parámetro p8 . La modalidad altcharset es diferente en que es ^ O o ^ N, en función de si el conjunto de modalidades de caracteres alternativos está activado o desactivado. Si todas las modalidades estuvieran activadas, la secuencia aparecería como\E[0;3;4;5;7;8m^N.

Algunas secuencias se proporcionan para uno o más modos. Por ejemplo,;3 iscuando el parámetro p2 o el parámetro p6 es true. Si escribe las secuencias anteriores junto con sus dependencias, el resultado es el siguiente:

Secuencia Cuando a salida conversión terminfo
\E[0 siempre \E[0
;3 si p2 o p6 %?%p2%p6%|%t;3%;
;4 si p1 o p3 o p6 %?%p1%p3%|%p6%|%t;4%;
;5 si p4 %?%p4%t;5%;
;7 si p1 o p5 %?%p1%p5%|%t;7%;
;8 si p7 %?%p1%t;8%;
m siempre m
^N or ^O si p9 ^ N, else ^ O %?%p9%t^N%e^O%;

El resultado final produciría una secuencia Gr que aparece de la siguiente manera:

sgr=\E[0%?%p2%p6%|%t;3%;%?%p1%p3%|%p6%|%t;4%;%?%p4%t;5;%?%p1%p5%|
%t;7%;%?%p1%t;8%;m%?%p9%t^N%e^O%;,

Keypad

Si el terminal tiene un teclado que transmite códigos cuando se pulsan las teclas, puede definirlo en la entrada terminfo para el terminal. No es posible manejar terminales donde el teclado sólo funciona en modalidad local. Si el teclado se puede establecer para transmitir o no transmitir, proporcione estos códigos como Smkx y rmkx. De lo contrario, se presupone que el teclado siempre transmite.

Para definir los códigos enviados por la flecha izquierda, la flecha derecha, la flecha arriba, la flecha abajo y las teclas de inicio, utilice las prestaciones kcub1, kcuf1, kcud1y Khome , respectivamente. Si hay teclas de función como F0, F1, ..., F63, los códigos que envían se pueden proporcionar como kf0, kf1, ..., Prestaciones de kf63 . Si las primeras once claves tienen etiquetas distintas de las predeterminadas de F0 a F10, puede especificar las etiquetas con lf0, lf1, ..., Prestaciones de lf10 . Los códigos transmitidos por otras claves especiales pueden definirse con:

Elemento Descripción
kbs Tecla de retroceso.
kclr Borre la pantalla o borre la tecla.
kctab Borre el tabulador de esta columna.
kdch1 Clave de carácter de supresión.
kdl1 Clave de línea de supresión.
( Borrar al final de la pantalla.
Kel Borrar al final de la línea.
khts Establezca un tabulador en esta columna.
kich1 Inserte el carácter o entre en la modalidad de inserción.
kil1 Insertar línea.
tipo Desplácese hacia adelante o hacia abajo, o ambos.
Kll Tecla de inicio hacia abajo (el inicio es la esquina inferior izquierda de la pantalla, en este caso).
krmir Salga de la modalidad de inserción.
knp Página siguiente.
kpp Página anterior.
ktbc Tecla de borrar todas las pestañas.
ri Desplácese hacia atrás o hacia arriba, o ambos.

Además, si el teclado tiene una matriz de tres por tres de teclas incluidas las cuatro teclas de flecha, especifique las otras cinco teclas como ka1, ka3, kb2 kc1y kc3. Estas teclas son útiles cuando necesita los efectos de un teclado direccional de tres por tres.

Las series que programan las teclas de función se pueden proporcionar como las prestaciones clavePf, pflocy pfx . Una serie para programar las etiquetas de pantalla blanda se puede proporcionar como pln. Cada una de estas series toma dos parámetros: el número de tecla de función para programar (de 0 a 10) y la serie con la que programarlo. Los números de teclas de función fuera de este rango pueden programar teclas no definidas de forma dependiente del terminal. Las prestaciones difieren en que clavePf hace que la pulsación de una tecla determinada sea la misma que el usuario que escribe la serie determinada, pfloc hace que la serie la ejecute el terminal en modalidad local y pfx hace que la serie se transmita al sistema. Las prestaciones nlab, Wy lh definen el número de etiquetas flexibles y el ancho y la altura. Utilice Smln y rmln para especificar los mandatos para activar y desactivar las etiquetas blandas. Smln es normalmente la salida después de una o más secuencias de pln para asegurarse de que el cambio sea visible.

Pestañas e inicialización

Si el terminal tiene pestañas de hardware, puede utilizar la función Ht (normalmente Ctrl-I) para especificar el mandato para avanzar a la siguiente parada de tabulación. Para especificar el mandato para desplazarse a la izquierda hacia la parada de tabulación anterior, utilice la función cbt . Por convención, si las modalidades de terminal indican que el sistema operativo está expandiendo las pestañas en lugar de enviarlas al terminal, los programas no deben utilizar las prestaciones Ht o cbt aunque estén presentes, ya que es posible que el usuario no tenga las paradas de pestaña establecidas correctamente.

Si el terminal tiene pestañas de hardware que se establecen inicialmente en cada n espacios cuando se enciende el terminal, su terminfo descripción debe definir la capacidad numérica it para mostrar el número de espacios en los que se establecen las pestañas. Normalmente, el mandato init de tput utiliza el parámetro it para determinar si se debe establecer la modalidad para la expansión de la pestaña de hardware y si se deben establecer los tabuladores. Si el terminal tiene paradas de tabulación que se pueden guardar en memoria no volátil, la descripción de terminfo puede suponer que se han establecido correctamente.

Otras prestaciones similares incluyen las series de inicialización is1, is2y is3 para el terminal; la prestación iprog que especifica el programa de inicialización del terminal y la prestación si que identifica el nombre de un archivo que contiene series de inicialización largas. Se espera que estas series establezcan el terminal en modalidades coherentes con el resto de la descripción de archivo terminfo . Normalmente se envían al terminal mediante el mandato init de tput cada vez que el usuario inicia sesión. Cuando el usuario inicia la sesión, el sistema hace lo siguiente:

  • Ejecuta el programa iprog .
  • Imprime is1.
  • Imprima is2.
  • Establece los márgenes utilizando las prestaciones Mgc, Smgly Smgr .
  • Establece las pestañas utilizando las prestaciones de tbc y hts .
  • Imprime el archivo si .
  • Imprime is3.

Puede configurar modalidades de terminal especiales sin duplicar series poniendo las secuencias comunes en la prestación is2 y los casos especiales en las prestaciones is1 y is3 . Para especificar secuencias que realizan un restablecimiento más difícil desde un estado totalmente desconocido, especifique las prestaciones rs1, rs2, rs3y rf que son las mismas que las prestaciones is1, is2, is3y si .

Algunos terminales utilizan los archivos si y rf . Sin embargo, el método recomendado es utilizar las series de inicialización y restablecimiento. Estas series se generan mediante el mandato restablecimiento de tput . Este mandato se utiliza cuando el terminal empieza a comportarse de forma extraña o no responde en absoluto. Los mandatos normalmente se colocan en las prestaciones rs1, rs2, rs3 y rf sólo si producen efectos molestos en la pantalla y no son necesarios al iniciar la sesión. Por ejemplo, el mandato para establecer el terminal en modalidad de 80 columnas normalmente formaría parte de is2, pero provoca un comportamiento de pantalla molesto y no es necesario puesto que la mayoría de los terminales se inicializan en modalidad de 80 columnas.

Si hay mandatos para establecer y borrar los tabuladores, especifíquelos utilizando las prestaciones tbc (borrar todos los tabuladores) y hts (establecer un tabulador en la columna actual de cada fila). Si se necesita una secuencia más compleja para establecer las pestañas, coloque la secuencia en la prestación is2 o si .

La prestación Mgc puede borrar cualquier margen. Para obtener más información sobre cómo establecer y borrar márgenes, consulte Márgenes.

Series varias

Si el terminal requiere un carácter que no sea un carácter nulo como relleno, especifique la serie almohadilla . Sólo se utiliza el primer carácter de la serie almohadilla . Si un terminal no tiene un carácter de relleno, especifique la prestación npc .

Si el terminal se puede mover hacia arriba o hacia abajo media línea, defina las prestaciones de Hu (media línea hacia arriba) y hd (media línea hacia abajo). Estas prestaciones son principalmente útiles para superíndices y subíndices en terminales de copia impresa. Si un terminal de copia impresa puede expulsar a la página siguiente (canal de información de formulario), especifique la prestación como ff (normalmente Ctrl-L).

Si hay un mandato para repetir un carácter determinado un número determinado de veces (para ahorrar tiempo transmitiendo un gran número de caracteres idénticos), esto se puede indicar con la serie parametrizada representante . El primer parámetro es el carácter que se va a repetir y el segundo es el número de veces que se repite. Así, a continuación:

tparm(repeat_char,'x',10)

equivale a

xxxxxxxxxx

Si el terminal tiene un carácter de mandato que se puede establecer, como por ejemplo Tektronix 4025, indique esto con la prestación cmdch . Se elige un carácter de mandato de prototipo que se utiliza en todas las prestaciones. Este carácter se proporciona en la función cmdch para identificarlo. En algunos sistemas UNIX , si existe la variable de entorno CC , todas las apariciones del carácter de prototipo se sustituyen por el carácter de la variable CC .

Las descripciones de terminal que no representan un tipo específico de terminal conocido como, por ejemplo, conmutador, acceso telefónico, parche y red, deben incluir la prestación gn (genérica). Esta función permite a los programas devolver errores si no pueden hablar con el terminal. La prestación gn no se aplica a las descripciones de terminal virtual para las que se conocen las secuencias de escape. Si un terminal está soportado por el protocolo de terminal virtual del sistema UNIX , utilice la capacidad Vt para definir su número de terminal.

Si un terminal utiliza el reconocimiento xon/xoff para el control de flujo, su descripción debe incluir la prestación Xon . Todavía debe incluir información de relleno, así para que las rutinas puedan tomar mejores decisiones sobre los costos. Sin embargo, los caracteres de relleno reales no se transmiten. Para especificar secuencias para activar y desactivar el reconocimiento xon/xoff, utilice las prestaciones Smxon y rmxon . Si los caracteres utilizados para el reconocimiento no son ^ S y ^ Q, utilice las prestaciones Xonc y Xoffc para definirlos.

Si un terminal tiene una meta clave que actúa como una tecla de desplazamiento para establecer el octavo bit de cualquier carácter transmitido, identifique la clave con la prestación km . De lo contrario, el software presupone que el octavo bit es paridad, y normalmente se borrará. Si existen series para activar y desactivar esta modalidad meta, se pueden proporcionar como las prestaciones smm y rmm .

Si un terminal tiene más líneas de memoria de las que caben en la pantalla a la vez, utilice la capacidad lm para definir el número de líneas de memoria. Un valor de lm#0 indica que el número de líneas no es fijo, pero que todavía hay más líneas de memoria de las que caben en la pantalla.

Las series de copia de medios que controlan una impresora auxiliar conectada al terminal se identifican con las prestaciones siguientes:

Elemento Descripción
mc0 Imprime el contenido de la pantalla
mc4 Apaga la impresora y
mc5 Enciende la impresora. Cuando la impresora está activada, todo el texto enviado al terminal se envía a la impresora. No está definido si el texto también se visualiza en la pantalla de terminal cuando la impresora está activada.
mc5p Deja la impresora encendida para un número especificado de caracteres y, a continuación, desactiva la impresora. El parámetro pasado a mc5p no debe superar 255.

Si la pantalla de terminal no muestra el texto cuando la impresora está activada, especifique la capacidad mc5i para indicar una impresora silenciosa. Todo el texto, incluido el mc4, se pasa de forma transparente a la impresora mientras está en vigor un mc5p .

Líneas de estado

Puede utilizar la entrada terminfo para indicar que el terminal tiene una línea de estado adicional que normalmente no utiliza el software. Si la línea de estado se visualiza como una línea adicional debajo de la línea inferior, en la que el cursor se puede dirigir normalmente, se debe proporcionar la prestación hs . Las series especiales para ir al principio de la línea de estado y para volver de la línea de estado se pueden proporcionar como las prestaciones Tsl y fsl , respectivamente. (El fsl debe dejar la posición del cursor en el mismo lugar en el que estaba antes del Tsl. Si es necesario, la serie sc y la serie cr se pueden incluir en Tsl y fsl para obtener este efecto.) La prestación Tsl toma un parámetro, que es el número de columna de la línea de estado a la que se va a mover el cursor.

Si las secuencias de escape y otros mandatos especiales, como el tabulador, funcionan mientras están en la línea de estado, especifique la prestación Eslok . Una serie que desactiva la línea de estado (o de lo contrario borra su contenido) debe proporcionarse como Dsl. Si el terminal tiene mandatos para guardar y restaurar la posición del cursor, dele las funciones sc y cr . Normalmente se presupone que la línea de estado tiene el mismo ancho que el resto de la pantalla, como por ejemplo cols. Si la línea de estado tiene un ancho diferente (posiblemente porque el terminal no permite que se cargue toda una línea), el ancho, en columnas, se puede indicar con el parámetro numérico wsl .

Gráficos de línea

Si el terminal tiene un juego de caracteres alternativo de dibujo de línea, especifique la correlación de glifo con carácter en la prestación acsc . La definición de esta serie se basa en el juego de caracteres alternativo utilizado en el terminal VT100 de DEC, ampliado ligeramente con algunos caracteres del terminal AT&T4410v1 . Utilice lo siguiente para definir la serie:

Nombre de glifo vt100+ Carácter
flecha apuntando a la derecha +
flecha apuntando a la izquierda ,
flecha apuntando hacia abajo .
bloque cuadrado sólido 0
símbolo de linterna I
flecha hacia arriba -
Diamond '
placa de verificación (puntito) a
símbolo de grado f
signo más o menos g
placa de cuadrados h
esquina inferior derecha j
esquina superior derecha k
esquina superior izquierda l
esquina inferior izquierda m
más n
línea de exploración 1 o
línea horizontal q
línea de exploración 9 s
Tee izquierdo t
tee derecho u
tee inferior v
tee superior w
línea vertical x
viñeta ~

La mejor manera de describir el conjunto de gráficos de línea de un nuevo terminal es añadir una tercera columna a la tabla anterior con los caracteres para el nuevo terminal que produciría el glifo apropiado cuando el terminal está en modo de juego de caracteres alternativo. Por ejemplo:

glyph name               vt100           tty
                         character       character
upper left corner        l               R
lower left corner        m               F
upper right corner       k               T
lower right corner       j               G
horizontal line          q               ,
vertical line            x               .

A continuación, especifique la prestación acsc especificando los caracteres de izquierda a derecha de la forma siguiente:

acsc=lRmFkTjGq\,x.

Manipulación de color

Existen dos métodos de manipulación de color, el método HP y el método Tektronix. La mayoría de los terminales de color existentes pertenecen a una de estas dos clases. El método Tektronix utiliza un conjunto de colores predefinidos de N (normalmente 8) entre los que un usuario puede seleccionar actual colores de primer plano y de fondo. Por lo tanto, el terminal puede soportar hasta N colores mezclados en N*N pares de colores que se visualizan en la pantalla al mismo tiempo.

El método HP restringe al usuario de ambos que definen el primer plano independientemente del segundo plano o del segundo plano independientemente del primer plano. En su lugar, el usuario debe definir un par de colores completo a la vez. De esta forma se pueden definir hasta M pares de colores, formados a partir de 2 *M colores diferentes.

Las variables numéricas colores y pares definen el número de colores y pares de colores que el terminal puede visualizar en la pantalla a la vez. Si un terminal puede cambiar la definición de un color, debe especificar la prestación ccc . Para cambiar la definición de un color utilizando el método Tektronix, utilice la prestación initc . Esta capacidad requiere cuatro parámetros: un número de color que va de 0 a colors-1 y tres valores de rojo, verde, azul (RGB) que van de 0 a 1.000.

Los terminales de la serie Tektronix 4100 utilizan un tipo de notación de color llamado HLS (Hue Lightness Saturation) en lugar de notación de color RGB. Para estos terminales, debe definir la prestación booleana hls . Los tres últimos argumentos para la prestación initc serían entonces valores HLS donde H oscila entre 0 y 360 y L y S oscila entre 0 y 100.
Nota: Si un terminal puede cambiar las definiciones de colores pero utiliza una notación de color diferente de RGB o HLS, debe desarrollar una correlación con RGB o HLS.

Para establecer el primer plano y el fondo actuales en un color determinado, utilice las prestaciones Setf y Setb . Estas prestaciones requieren un único parámetro que especifique el número del color. Para utilizar el método HP para inicializar un par de colores, utilice la prestación initp . Esta prestación requiere siete parámetros:

  • el número del par de colores en el rango de 0 a pares -1
  • tres valores RGB para el primer plano
  • tres valores RGB en segundo plano

Cuando utilice las prestaciones de initc o initp , asegúrese de especificar los valores en el orden rojo, verde, azul o tono, ligereza, saturación, respectivamente. Para hacer que un par de colores sea actual, utilice la prestación scp . Esta función toma un parámetro, el número del par de colores.

Algunos terminales borran áreas de la pantalla con el color de fondo actual. En estos casos, defina la prestación bce . La prestación op contiene una secuencia para establecer los colores de primer plano y de fondo en lo que eran en el momento de inicio del terminal. De forma similar, la prestación oc contiene una secuencia de control para establecer todos los colores o pares en los valores que tenían en el momento de inicio del terminal.

Algunos terminales de color sustituyen el color de los atributos de vídeo. Estos atributos de vídeo no deben combinarse con colores. Debe empaquetar información sobre estos atributos de vídeo en la prestación ncv . Existe una correspondencia de uno a uno entre los nueve bits menos significativos de esa variable y los atributos de vídeo. La tabla siguiente muestra esta correspondencia:

Atributo Número de bits de NCV
A_DESTACADO 0
_SUBRAYADO 1
_INVERSO 2
Un BLINK 3
A_DIM 4
A_NEGRITA 5
INVIS 6
_PROTECCIÓN 7
A_ALTCHARSET 8

Cuando un atributo de vídeo determinado no debe utilizarse con colores, el bit ncv correspondiente debe establecerse en 1. De lo contrario, establezca el bit en 0. Por ejemplo, si el terminal utiliza colores para simular el vídeo inverso y negrita, los bits 2 y 5 deben establecerse en 1. Los valores resultantes para ncv serán 22.

Casos especiales

Algunos terminales requieren un soporte especial por parte de la base de datos terminfo . Estos terminales no son deficientes. Estos terminales tienen un hardware que puede ser ligeramente diferente del que espera la base de datos de terminfo de la mayoría de los terminales. Algunos de los casos especiales se discuten en esta sección. El manual del programador para un terminal debe proporcionar toda la información que necesita para codificar una descripción de terminfo para el terminal.

Para los terminales que no permiten el carácter ~ (tilde), utilice la función hz .

Las descripciones de los terminales que ignoran un carácter de salto de línea inmediatamente después de una envoltura de am deben incluir la prestación xenl . Los terminales cuyo cursor permanece en la columna situada más a la derecha hasta que se recibe otro carácter en lugar de acomodarse inmediatamente después de recibir el carácter situado más a la derecha, también deben utilizar la función xenl .

Si se necesita la prestación El para deshacerse de la característica destacada (en lugar de simplemente escribir texto normal encima), debe especificar la prestación xhp .

Los terminales para los que las pestañas cambian todos los caracteres movidos en espacios en blanco deben indicar la prestación de xt (pestañas destructivas). Esta capacidad se interpreta como que no es posible colocar el cursor en la parte superior de las almohadillas insertadas para la modalidad destacada. En su lugar, es necesario borrar la modalidad destacada utilizando suprimir e insertar línea.

Un terminal que no puede transmitir correctamente los caracteres ESC (escape) o Ctrl-C debe especificar la capacidad xsb , lo que indica que la tecla F1 se utiliza para ESC y la tecla F2 se utiliza para Ctrl-C.

Otros problemas de terminal específicos se pueden corregir añadiendo más prestaciones.

Terminales similares

Si dos terminales son muy similares, puede definir uno como igual que el otro con la prestación de serie utilizar . También puede utilizar todas las definiciones de una descripción existente e identificar excepciones. Las prestaciones dadas antes de la prestación utilizar alteran temporalmente las del tipo de terminal llamado por la prestación utilizar . Para cancelar un lugar de prestaciónxx@a la izquierda de la definición de capacidad de utilizar , dondexxes la capacidad. Por ejemplo, la entrada:
term-nl | Terminal smkx@, rmkx@, use=term

define un terminal que no tiene la prestación Smkx o rmkx y, por lo tanto, no activa las etiquetas de teclas de función cuando está en modalidad visual. Esto es útil para diferentes modalidades de terminal o para diferentes preferencias de usuario. Puede especificar más de una prestación de utilizar .

Prestaciones de impresora

La base de datos terminfo le permite definir las prestaciones de las impresoras, así como de los terminales. Para averiguar qué prestaciones están disponibles para las impresoras, así como para los terminales, consulte las dos listas bajo Prestaciones de terminal que listan las prestaciones por variable y por nombre de prestación.

Valores de redondeo

Puesto que las prestaciones de serie parametrizada solo funcionan con valores enteros, se recomienda que los diseñadores de terminfo creen series que esperen valores numéricos redondeados. Los programadores siempre deben redondear los valores al entero más cercano antes de utilizarlos con una función de serie parametrizada.

Resolución de impresora

La resolución de una impresora es el menor espacio de caracteres que puede alcanzar. En general, las impresoras tienen una resolución independiente horizontal y verticalmente. Para determinar la resolución vertical de una impresora, mida la distancia más pequeña posible entre líneas base de impresión consecutivas. Para determinar la resolución horizontal, mida la distancia más pequeña posible entre los bordes más a la izquierda de los caracteres consecutivos impresos, idénticos.

La base de datos terminfo presupone que todas las impresoras son capaces de imprimir con una resolución horizontal y vertical uniforme. La base de datos terminfo interactúa actualmente con las impresoras como si imprimieran dentro de una matriz uniforme. Todos los caracteres se imprimen en posiciones fijas relativas a cada celda de la matriz. Además, cada celda tiene el mismo tamaño dado por los tamaños de paso horizontal y vertical más pequeños dictados por la resolución.

Muchas impresoras son capaces de imprimir de forma proporcional donde el espaciado horizontal depende del tamaño del último carácter impreso. La base de datos terminfo no utiliza esta prestación, aunque proporciona suficientes definiciones de prestación para permitir que una aplicación simule la impresión proporcional.

Una impresora no sólo debe ser capaz de imprimir caracteres tan juntos como sugieren las resoluciones horizontal y vertical, sino también de moverse a una posición que es un múltiplo integral de la distancia más pequeña lejos de una posición anterior. Por lo tanto, los caracteres impresos se pueden espaciar una distancia que es un múltiplo integral de la distancia más pequeña, hasta la longitud del ancho de una sola página.

Algunas impresoras pueden tener diferentes resoluciones dependiendo de diferentes modos. En modalidad normal, se presupone que las prestaciones de terminfo existentes funcionan en columnas y líneas, al igual que un terminal de vídeo. Por ejemplo, la función líneas antigua especifica la longitud de una página en líneas y la función cols especifica el ancho de una página en columnas. En la modalidad micro , muchas terminfo prestaciones funcionan en incrementos de líneas y columnas. Con algunas impresoras, la modalidad micro puede existir simultáneamente con la modalidad normal , de modo que todas las prestaciones funcionen al mismo tiempo.

Especificación de resolución de impresora

Puede especificar la resolución de impresión de una impresora con varias prestaciones diferentes. Cada prestación especifica la distancia de una forma diferente. Las prestaciones siguientes definen la resolución de impresión:

Prestación Definido como
orhi pasos por pulgada horizontalmente
orvi pasos por pulgada verticalmente
orc pasos por columna
orl pasos por línea

Cuando se imprime en modalidad normal, cada carácter impreso hace que la impresora se mueva a la siguiente columna, excepto en casos especiales que se describen más adelante. La distancia movida es la misma que la resolución por columna. Algunas impresoras provocan un movimiento automático a la siguiente línea cuando se imprime un carácter en la posición más a la derecha. La distancia vertical movida es la misma que la resolución por línea. Al imprimir en modo micro, estas distancias pueden ser diferentes, y pueden ser cero para algunas impresoras. A continuación se especifica el movimiento automático de resolución de impresora después de la impresión:

Prestación Definido como
orc Los pasos se mueven horizontalmente en modo normal.
orl Pasos movidos verticalmente en modo normal.
MCS Pasos movidos horizontalmente en modo micro.
MLS Pasos movidos verticalmente en modo micro.

Algunas impresoras pueden imprimir caracteres anchos. La distancia que se mueve cuando se imprime un carácter ancho en modo normal puede ser diferente de cuando se imprime un carácter de anchura regular. La distancia que se mueve cuando se imprime un carácter ancho en modo micro también puede ser diferente de cuando se imprime un carácter regular en modo micro, pero se supone que las diferencias están relacionadas.

Si la distancia movida para un carácter regular es la misma en modalidad normal o modalidad micro (mcs=ocs), la distancia movida para un carácter ancho también es la misma en ambas modalidades. Esto no significa que la distancia de carácter normal sea necesariamente la misma que la distancia de carácter ancho, sólo que las distancias no cambian con un cambio de modo normal a modo micro. Utilice la capacidad anchos para especificar la resolución de la impresora cuando el movimiento automático después de imprimir un carácter ancho sea el mismo en modalidad normal o micro.

Si la distancia movida para un carácter regular es diferente en modo micro de la distancia movida en modo normal (mcs <orc), puede suponer que la distancia de modo micro es la misma para un carácter ancho impreso en modo micro. En este caso, utilice la prestación mcs para especificar la distancia que se ha movido. La impresora utiliza el valor que especifique para los caracteres regulares y anchos

Una impresora puede utilizar secuencias de control para cambiar el número de columnas por pulgada (el paso de caracteres) y para cambiar el número de líneas por pulgada (el paso de línea). Si se utilizan, la resolución de la impresora cambia, pero el tipo de cambio depende de la impresora.

Prestación Definido como
CPI Cambiar el tono de caracteres.
cpix Si se establece, Cpi cambia orhi; de lo contrario, la función Cpi cambia el valor orc .
LPI Cambiar paso de línea
lpix Si se establece, lpi cambia el valor orvi ; de lo contrario, se cambia el valor orl .
CHR Cambia pasos por columna.
cvr Cambia pasos por línea.

Las prestaciones de serie Cpi y lpi tienen un único argumento, el tono en columnas (o caracteres) y líneas por pulgada, respectivamente. La prestación Chr y las prestaciones de serie cvr tienen cada una un único argumento, el número de pasos por columna y línea, respectivamente.

El uso de cualquiera de las secuencias de control en estas series implica un cambio en algunos de los valores de las prestaciones orc, orhi, orly orvi . Además, la distancia que se mueve cuando se imprime un carácter ancho, especificado por la prestación anchos , cambia en relación con el valor orc . La distancia que se mueve cuando se imprime un carácter en modo micro, mcs, cambia de forma similar, con una excepción: si la distancia es 0 o 1, no se asume ningún cambio.

Los programas que utilizan la función cpi, lpi, chr o cvr deben volver a calcular la resolución de impresora y deben volver a calcular otros valores. Para obtener más información, consulte Efecto de cambiar la resolución de impresión .

La siguiente figura, "Especificación de los efectos de resolución de impresora de los cambios de caracteres/líneas", muestra los efectos sobre la resolución de la impresora antes y después de un cambio.
Esta ilustración muestra los efectos de cambiar el tono de caracteres y el tono de línea en la resolución de la impresora.
Ilustración aixfi5

Icpi, Ilpi, Ichr y Icvr son los argumentos utilizados con Cpi, lpi, Chry cvr respectivamente. El símbolo de dagger indica el valor antiguo.

Prestaciones que hacen que el movimiento

En las descripciones siguientes, movimiento hace referencia al movimiento del posición actual. Con los terminales de vídeo este sería el cursor; con algunas impresoras esta es la posición del carro. Otras impresoras tienen diferentes equivalentes. En general, la posición actual es donde se visualizaría un carácter si se imprimiera.

La base de datos terminfo tiene prestaciones de serie para las secuencias de control que provocan el movimiento de varias columnas o líneas completas. También tiene prestaciones de serie equivalentes para las secuencias de control que causan el movimiento de un número de pequeños pasos. A continuación se muestran las prestaciones de serie para el movimiento:

Prestación Descripción
mcub1 Mover 1 paso a la izquierda.
mcuf1 Mover 1 paso a la derecha.
mcuu1 Mover 1 paso hacia arriba.
mcud1 Mover 1 paso hacia abajo.
Mcub Mueva N pasos a la izquierda.
mcuf Mueva los pasos de N a la derecha.
mcuu Mueva N pasos hacia arriba.
mcud Mover N pasos hacia abajo.
Mhpa Mueva N pasos desde la izquierda.
mvpa Mueva N pasos desde la parte superior.

Las últimas seis series se utilizan cada una con un único argumento N .

A veces el movimiento se limita a menos que el ancho o la longitud de una página. Además, algunas impresoras no aceptan el movimiento absoluto a la izquierda de la posición actual. Las prestaciones siguientes limitan el movimiento:

Prestación Descripción
mjump Limita el uso de las prestaciones de mcub1, mcuf1, mcuu1y mcud1 .
Dirección Limita el uso de las prestaciones de Mhpa y mvpa .
xhpa Si se establece, se niegan las prestaciones HPA y Mhpa .
xvpa Si se establece, se niegan las prestaciones vpa y mvpa .

Si una impresora necesita estar en modalidad micro para que funcionen las prestaciones de movimiento, puede definir una capacidad de serie para contener la secuencia de control para entrar y salir de la modalidad micro. Hay un valor booleano disponible para las impresoras en las que el uso de un retorno de carro provoca un retorno automático a la modalidad normal. Las prestaciones siguientes están relacionadas con el comportamiento de la modalidad micro:

Prestación Descripción
smicm Especifique la modalidad micro.
rmicm Salga de la modalidad micro.
crxm El uso de la clave especificada por la función cr sale de la modalidad micro.

El movimiento realizado cuando se imprime un carácter en la posición más a la derecha varía entre las impresoras. Algunos no hacen ningún movimiento, algunos se mueven al principio de la siguiente línea, otros se mueven al principio de la misma línea. La base de datos terminfo tiene prestaciones booleanas que describen los tres casos. La función sam especifica que la impresora se mueve automáticamente al principio de la misma línea después de que el carácter se imprima en el margen más a la derecha.

Algunas impresoras pueden colocarse en un modo en el que se invierta la dirección normal de movimiento. Este modo es especialmente útil cuando no existen capacidades para el movimiento hacia la izquierda o hacia arriba, puede construir estas capacidades a partir de la capacidad de inversión de movimiento y las capacidades de movimiento hacia la derecha o hacia abajo. Sin embargo, es mejor dejarlo en manos de una aplicación para crear las prestaciones hacia la izquierda o hacia arriba, y no entrarlas en la base de datos de terminfo . Esto permite que varios movimientos inversos se encadenen juntos sin intervenir pasos desperdiciados que dejan y vuelven a entrar en el modo inverso. Las prestaciones siguientes controlan la entrada y salida de las modalidades inversas:

Prestación Descripción
Slm Sentido inverso de los movimientos horizontales.
rlm Restaure el sentido de los movimientos horizontales.
sum Sentido inverso de los movimientos verticales.
ron Restaure el sentido de los movimientos verticales.

Las prestaciones siguientes afectan a la pantalla mientras se invierten los movimientos horizontales:

Prestación Descripción
mcub1 Mover 1 paso a la derecha.
mcuf1 Mover 1 paso a la izquierda.
Mcub Mueva los pasos de N a la derecha.
mcuf Mueva N pasos a la izquierda.
cub1 Mover 1 columna a la derecha.
cuf1 Mover 1 columna a la izquierda.
Cachorro Mueva N columnas a la derecha.
Cuf Mover N columnas a la izquierda.

Las prestaciones siguientes afectan a la pantalla mientras se invierten los movimientos verticales:

Prestación Descripción
mcuu1 Mover 1 paso hacia abajo.
mcud1 Mover 1 paso hacia arriba.
mcuu Mover N pasos hacia abajo.
mcud Mueva N pasos hacia arriba.
cuu1 Mover 1 línea hacia abajo.
cud1 Mover 1 línea hacia arriba
Cuu Desplace N líneas hacia abajo.
CUD Mueva las líneas de N hacia arriba.

La modalidad de movimiento inverso no debe afectar a las prestaciones de movimiento absoluto mvpa y Mhpa . Sin embargo, el modo de movimiento vertical inverso también debe invertir la acción de la línea acomodación que se produce cuando se imprime un carácter en la posición más a la derecha. Por lo tanto, las impresoras que tienen definida la terminfo capacidad am estándar deben moverse al principio de la línea anterior cuando se imprime un carácter en la posición más a la derecha y la impresora está en modalidad de movimiento vertical inverso.

La acción cuando se utiliza cualquier otra capacidad de movimiento en los modos de movimiento inverso no está definida. Por lo tanto, los programas deben salir de los modos de movimiento inverso antes de utilizar otras capacidades de movimiento.

Dos prestaciones diversas completan la lista de prestaciones de movimiento nuevas, la prestación docr y la prestación zerom . La prestación docr proporciona una lista de caracteres de control que causan un retorno de carro. Esta capacidad es útil para las impresoras que mueven la posición actual al principio de una línea cuando se utilizan determinados caracteres de control, como salto de línea o salto de formulario. La función zerom impide el movimiento automático después de imprimir un único carácter. Esta capacidad suspende el movimiento que normalmente se produce después de imprimir un carácter.

Márgenes

La base de datos terminfo proporciona dos series para establecer márgenes en los terminales: una para la izquierda y otra para el margen derecho. Las impresoras, sin embargo, tienen dos márgenes adicionales para los márgenes superior e inferior de cada página. Además, algunas impresoras no requieren el uso de cadenas de movimiento para mover la posición actual a un margen y fijar el margen allí, como con las capacidades existentes, sino que requieren la especificación de dónde debe estar un margen independientemente de la posición actual. Por lo tanto, la base de datos terminfo ofrece seis series adicionales para definir márgenes con impresoras. Las prestaciones siguientes afectan a los márgenes:

Prestación Definición
Smgl Establezca el margen izquierdo en la columna actual.
Smgr Establezca el margen derecho en la columna actual.
Smgb Establezca el margen inferior flexible en la línea actual.
Smgt Establezca el margen superior flexible en la línea actual.
Smgbp Establezca el margen inferior flexible en la línea N.
Smglp Establezca el margen izquierdo flexible en la columna N.
Smgrp Establezca el margen derecho flexible en la columna N.
Smgtp Establezca el margen superior flexible en la línea N.
Las últimas cuatro series se utilizan con un único parámetro N . Este parámetro especifica un número de línea o columna, donde 0 es la línea superior y la columna 0 es la columna más a la izquierda.
Nota: No todas las impresoras utilizan 0 para la línea superior o la columna situada más a la izquierda.

Todos los márgenes se pueden borrar con la prestación Mgc .

Sombras, cursiva, caracteres anchos, superíndices y subíndices

Se utilizan cinco nuevos conjuntos de series para describir las capacidades que tienen las impresoras para mejorar el texto impreso. A continuación se definen las prestaciones de impresión mejoradas:

Prestación Definición
sshm Entre en la modalidad de impresión de sombra.
rshm Salir de la modalidad de impresión de sombra.
sitm Especifique la modalidad de cursiva.
ritmo Salir de la modalidad de cursiva.
swidm Especifique la modalidad de caracteres anchos.
rwidm Salga de la modalidad de caracteres anchos.
ssupm Especifique la modalidad de superíndice.
rsupm Salir de la modalidad de superíndice.
sucs Lista de caracteres disponibles como superíndices.
ssubm Especifique la modalidad de subíndice.
rsubm Salir de la modalidad de subíndice.
subprocesos Lista de caracteres disponibles como subíndices.

Si una impresora requiere que se imprima la secuencia de control sshm antes de cada carácter, la serie rshm se deja en blanco. Por lo tanto, los programas que encuentran una secuencia de control en sshm pero ninguno en modalidad de impresión de sombra deben utilizar la secuencia de control especificada por la prestación sshm antes de que se imprima cada carácter de sombra. De lo contrario, la secuencia de control debe utilizarse una vez antes del conjunto de caracteres que se van a imprimir en la sombra, seguido de la salida de la modalidad de impresión en la sombra.

La base de datos terminfo también tiene la posibilidad de imprimir texto envalentonado, la función negrita . Mientras que la impresión de sombras y la impresión envalentonada son similares en que oscurecen el texto, muchas impresoras producen estos dos tipos de impresión de maneras ligeramente diferentes. La impresión generalmente envalentonada se realiza sobregolpeando al mismo personaje una o más veces. La impresión de sombras también suele implicar sobreimpresión, pero con un ligero movimiento hacia arriba y/o hacia un lado para que el personaje sea más gordo.

Se supone que los modos de impresión mejorados son modos independientes, por lo que sería posible, por ejemplo, duplicar subíndices en cursiva de impresión.

Como se ha mencionado anteriormente, la cantidad de movimiento que se realiza automáticamente después de imprimir un carácter ancho se debe dar en la capacidad anchos .

Si sólo se puede imprimir un subconjunto de los caracteres ASCII imprimibles como superíndices o subíndices, se deben listar en las prestaciones sucs o subprocesos , respectivamente. Si las series ssupm o ssubm contienen secuencias de control, pero las series sucs o subprocesos correspondientes están vacías, se presupone que todos los caracteres ASCII imprimibles están disponibles como superíndices o subíndices.

Se supone que el movimiento automático realizado después de imprimir un superíndice o subíndice es el mismo que para los caracteres regulares. Por ejemplo, la impresión de cualquiera de los siguientes resultados en movimiento equivalente:

Bi Bi Bi

La prestación booleana gestor de mensajes describe si una aplicación puede utilizar secuencias de control de movimiento mientras está en modalidad destacada. Esta capacidad se amplía para cubrir los modos de impresión mejorados añadidos aquí. La prestación mgsr se debe establecer para las impresoras que aceptan cualquier secuencia de control de movimiento sin afectar a la impresión de sombra, cursiva, ampliada, superíndice o subíndice. Por el contrario, si la prestación mgsr no está establecida, un programa debe finalizar estas modalidades antes de intentar cualquier movimiento.

Juegos de caracteres alternativos

Además de permitirle definir gráficos de líneas, la base de datos terminfo también le permite definir juegos de caracteres alternativos. Las prestaciones siguientes cubren impresoras y terminales con varios juegos de caracteres seleccionables o definibles:

Prestación Definición
scs Seleccione el juego de caracteres N. El parámetro N especifica un número de 0 a 63 que identifica un juego de caracteres.
scsd Definición de inicio del juego de caracteres N, M caracteres. El parámetro N especifica un número de 0 a 63 que identifica un juego de caracteres y el parámetro M especifica el número de caracteres del conjunto.
defc Define un carácter A para que tenga B puntos de ancho con un Ddescendente. El parámetro A es la representación de código ASCII para el carácter. El parámetro B especifica el ancho del carácter en puntos. El parámetro D especifica si el carácter es descendente o no. Si el carácter es descendente, especifique un 1 para el parámetro D . De lo contrario, especifique un 1. Esta serie va seguida de una serie de bytes de datos de imagen que describen el aspecto del carácter.
rcsd Definición final del juego de caracteres N. El parámetro N especifica un número de 0 a 63 que identifica un juego de caracteres.
csnm Lista de nombres de juegos de caracteres.
margarita Indica que la impresora ha cambiado manualmente las ruedas de impresión.

El juego de caracteres 0 es el juego de caracteres predeterminado. Este es el conjunto que está presente después de que se inicialice la impresora. No todas las impresoras soportan 64 juegos de caracteres. Si especifica un conjunto que no soporta una impresora, la subrutina tparm devuelve un resultado nulo.

Si la aplicación debe definir un carácter antes de utilizarlo, utilice la secuencia de control scsd antes de definir el juego de caracteres y el rcsd después. Si especifica un juego de caracteres no válido para cualquiera de estas prestaciones, la subrutina tparm devuelve una resolución nula. Si la aplicación debe seleccionar un juego de caracteres después de que se haya definido, la secuencia de control scs debe seguir la secuencia de control rcsd . Al examinar los resultados de utilizar cada una de las series scs, scsdy rcsd con un número de juego de caracteres en una llamada a la subrutina tparm , un programa puede determinar cuáles de las tres son necesarias.

Entre el uso de las series scsd y rcsd , se debe utilizar la serie defc para definir cada carácter. Para imprimir cualquier carácter en las impresoras definidas en la base de datos terminfo , el código ASCII se envía a la impresora. Esto es cierto para los caracteres de un conjunto alternativo, así como para los caracteres normal . Por lo tanto, la definición de un carácter incluye el código ASCII que lo representa. Además, el ancho del carácter incluye el código ASCII que lo representa. Además, se indica el ancho del carácter en puntos, junto con una indicación tan clara de si el carácter es descendente. Un descendente es un carácter cuya forma se extiende por debajo de la línea base, por ejemplo, el carácter g es un descendente. La anchura del carácter son puntos también indica el número de bytes de datos de imagen que seguirán a la serie defc . Estos bytes de datos de imagen indican dónde se debe aplicar una tinta de patrón de matriz de puntos a dibujar el carácter. El número de estos bytes y su formato se definen a continuación en Gráfico correlacionado con punto.

Es más fácil para el creador de entradas terminfo hacer referencia a cada juego de caracteres por número. Sin embargo, estos números no tendrán sentido para el desarrollador de aplicaciones. La prestación csnm alivia este problema proporcionando nombres para cada número.

Cuando se utiliza con un número de juego de caracteres en una llamada a la subrutina tparm , la prestación csnm produce el nombre equivalente. Utilice estos nombres sólo como referencias. No hay ningún convenio de denominación implícito, aunque cualquiera que cree una entrada terminfo para una impresora debe utilizar nombres coherentes con los nombres encontrados en los documentos de usuario para la impresora. Los desarrolladores de aplicaciones deben permitir que un usuario especifique un juego de caracteres por número (dejando que el usuario examine la serie csnm para determinar el número correcto), o por nombre, donde la aplicación examina la capacidad csnm para determinar el número de juego de caracteres correspondiente.

Es probable que las prestaciones del juego de caracteres alternativo se utilicen sólo con impresoras de matriz de puntos. Si no están disponibles, no defina estas series. Para las impresoras que han cambiado manualmente las ruedas de impresión o los cartuchos de font, establezca la prestación booleana margarita .

Gráficos de matriz de puntos

Las impresoras de matriz de puntos suelen tener la capacidad de reproducir imágenes de gráficos de barrido. Tres nuevas capacidades numéricas y tres nuevas capacidades de cadena pueden ayudar a un programa a dibujar imágenes gráficas de barrido independientes del tipo de impresora de matriz de puntos o del número de clavijas o puntos que la impresora puede manejar a la vez. Las prestaciones de la matriz de puntos son las siguientes:

Prestación Definición
Patillas Número de patillas N en la cabeza de impresión. El parámetro N especifica el número de patillas.
Spinv Espaciado de patillas verticalmente en patillas por pulgada.
Spinh Espaciado de puntos horizontalmente en puntos por pulgada.
Porder Compara los bits de software con las patillas de la cabeza de impresión.
sbim Iniciar la impresión de gráficos de imagen de bits, B bits de ancho. El valor B especifica el ancho de la imagen en puntos.
rbim Finalizar impresión de gráficos de imagen de bits.

El modelo de matriz de puntos o raster-graphics que presenta la base de datos terminfo es similar a la técnica utilizada para la mayoría de impresoras de matriz de puntos. Se supone que cada paso de la cabeza de impresión de la impresora produce una matriz de puntos que tiene N puntos de alto y B puntos de ancho. Esto es típicamente un rectángulo ancho, en cuclillas, de puntos. La altura de este rectángulo en puntos varía de una impresora a la siguiente. Esto se proporciona en la prestación numérica Patillas . El tamaño del rectángulo en fracciones de una pulgada también variará. El tamaño se puede deducir de las prestaciones numéricas Spinv y Spinh . Con estos tres valores una aplicación puede dividir una imagen completa de raster-graphics en varias tiras horizontales, tal vez interpolando para dar cuenta de diferentes espaciado de puntos vertical y horizontalmente.

Las prestaciones sbim y rbim se utilizan para iniciar y finalizar una imagen de matriz de puntos, respectivamente. La prestación sbim se utiliza con un único argumento que proporciona la anchura de la matriz de puntos en puntos. Se envía una secuencia de bytes de datos de imagen a la impresora después de la prestación sbim y antes de la serie rbim . El número de bytes es un múltiplo integral de la anchura de la matriz de puntos. El múltiplo y la forma de cada byte están determinados por la prestación Porder que se describe a continuación.

La prestación Porder es una lista separada por comas de números de anclaje. La posición de cada número de pin en la lista corresponde a un bit en un byte de datos. Las patillas se numeran consecutivamente de 1 a Patillas, siendo 1 la patilla superior. El término pin se utiliza libremente aquí. Las impresoras de matriz de puntos de inyección de tinta no tienen clavijas, pero sí tienen un método equivalente para aplicar un único punto de tinta al papel. Las posiciones de bits en Porder están en grupos de 8, con la primera posición en cada grupo el bit más significativo y la última posición el bit menos significativo.

Los bytes de datos de imagen se calculan a partir de la imagen de matriz de puntos, correlacionando las posiciones de punto verticales en cada cabezal de impresión en bytes de ocho bits, utilizando un 1 bit donde se debe aplicar la tinta y 0 donde no se debe aplicar ninguna tinta. Si se omite una posición en Porder, se utiliza un bit 0. Debe haber un múltiplo de posiciones de 8 bits utilizadas o omitidas en Porder. Si no es así, se utilizan 0 bits para rellenar el último byte en los bits menos significativos.

Efecto de cambiar la resolución de impresión

Si se utilizan las secuencias de control para cambiar el paso de caracteres o el paso de línea, el pin o el espaciado de puntos puede cambiar. Las prestaciones siguientes cambian el tono en los gráficos de matriz de puntos:

Posibilidades Definición
CPI Cambie el tono de caracteres.
cpix Si se establece, Cpi cambia Spinh.
LPI Cambiar paso de línea.
lpix Si se establece, lpi cambia Spinv.
Los programas que utilizan Cpi o lpi deben volver a calcular el espaciado de puntos. La siguiente figura "efectos gráficos de matriz de puntos de cambio de los caracteres/lanzamientos de línea" muestra los gráficos antes y después de un cambio en el tono.
Figura 1. Gráficos de matriz de puntos. Esta ilustración muestra los efectos de cambiar el tono de caracteres y el tono de línea en los gráficos de matriz de puntos.
Ilustración aixfi6

Los valores orhi " y orhi son los valores de la resolución horizontal en pasos por pulgada, antes de utilizar Cpi y después de utilizar Cpi, respectivamente. Del mismo modo, orvi " y orvi son los valores de la resolución vertical en pasos por pulgada, antes de utilizar lpi y después de utilizar lpi, respectivamente. Así, los cambios en los puntos por pulgada para los gráficos de matriz de puntos siguen los cambios en los pasos por pulgada para la resolución de la impresora.

Calidad de impresión

Muchas impresoras de matriz de puntos pueden alterar el espaciado de puntos del texto impreso para producir una impresión casi de calidad de letra o una impresión de calidad de borrador. Por lo general, es importante poder elegir una u otra porque la velocidad de impresión generalmente se desploma a medida que la calidad mejora. Las prestaciones que especifican la calidad de impresión son las siguientes:

Prestación Definición
Snlq Establecer impresión de calidad de letra cercana.
Snrmq Establezca la impresión de calidad normal.
sdrfq Establecer impresión de calidad de borrador.

Las capacidades se listan en niveles decrecientes de calidad. Si una impresora no tiene los tres niveles, una o dos de las series deben dejarse en blanco según corresponda.

Velocidad de impresión y tamaño de almacenamiento intermedio

Debido a que no existe un protocolo estándar que sincronice una impresora con un programa, y debido a que las impresoras modernas pueden almacenar datos en búfer antes de imprimirlos, un programa generalmente no puede determinar en ningún momento lo que ha impreso. Dos nuevas prestaciones numéricas pueden ayudar a un programa a estimar lo que se ha impreso, las prestaciones cps y bufsz .

La capacidad cps especifica la velocidad de impresión nominal en caracteres por segundo. La capacidad cps es la velocidad nominal o promedio a la que la impresora imprime los caracteres. Si no se indica este valor, estime la tasa en una décima parte de la tasa en baudios predominante.

La prestación bufsz define la capacidad de almacenamiento intermedio de un terminal en caracteres. El valor bufsz es el número máximo de caracteres subsiguientes colocados en el almacenamiento intermedio antes de la impresión garantizada de un carácter anterior, suponiendo que se haya utilizado un control de flujo adecuado. Si no se proporciona este valor, se presupone que la impresora no contiene caracteres de almacenamiento intermedio, sino que los imprime a medida que se reciben.

Por ejemplo, si una impresora tiene un almacenamiento intermedio de 1000 caracteres, se garantiza que el envío de la letra "a" seguida de 1000 caracteres adicionales hará que se imprima la letra "a". Si la misma impresora imprime a una velocidad de 100 caracteres por segundo, debería tardar 10 segundos en imprimir todos los caracteres del almacenamiento intermedio, menos si el almacenamiento intermedio no está lleno. Al hacer un seguimiento de los caracteres enviados a una impresora y conocer la velocidad de impresión y el tamaño del búfer, un programa puede sincronizarse con la impresora.

La mayoría de los fabricantes de impresoras anuncian la tasa de impresión máxima, no la tasa de impresión nominal. Una buena forma de obtener un valor para poner en cps es generar unas pocas páginas de texto, contar el número de caracteres imprimibles y, a continuación, ver cuánto tiempo se tarda en imprimir el texto.

Las aplicaciones que utilizan estos valores deben reconocer la variabilidad en la velocidad de impresión. El texto recto, en líneas cortas, sin secuencias de control incorporadas probablemente se imprimirá cerca de la velocidad de impresión anunciada y probablemente más rápido que la velocidad en cps. Los datos gráficos con una gran cantidad de secuencias de control, o líneas muy largas de texto, se imprimirán muy por debajo de la tasa anunciada y por debajo de la tasa en cps. Si la aplicación utiliza cps para decidir cuánto tiempo debe tardar una impresora en imprimir un bloque de texto, la aplicación debe rellenar la estimación. Si la aplicación utiliza cps para decidir la cantidad de texto que ya se ha impreso, debe reducir la estimación. La aplicación se equivoca a favor del usuario, que quiere, sobre todo, ver toda la salida en su lugar correcto.

Nombres de archivo de base de datos

Las descripciones de archivo terminfo compiladas se colocan en subdirectorios bajo el directorio /usr/share/lib/terminfo para evitar realizar búsquedas lineales a través de un único directorio que contenga todos los archivos de descripción de archivo terminfo . Un archivo de descripción determinado se almacena en el archivo /usr/share/lib/terminfo/c/nombre , donde nombre es el nombre del terminal, y c es la primera letra del nombre del terminal. Por ejemplo, la descripción compilada para el terminalterm4-nlse puede encontrar en el archivo /usr/share/lib/terminfo/t/term4-nl. Puede crear sinónimos para el mismo terminal creando varios enlaces al mismo archivo compilado. (Consulte el mandato ln sobre cómo crear varios enlaces a un archivo.)

Ejemplo

La siguiente entrada terminfo describe un terminal:

hft|High Function Terminal,
    cr=^M, cud1=\E[B, ind=\E[S, bel=^G, il1=\E[L, am,
    cub1=^H, ed=\E[J, el=\E[K, clear=\E[H\E[J,
    cup=\E[%ip1%d;%p2%dH, cols#80, lines=#25,
    dch1=\E[P, dl1=\E[M, home=\E[H,
    ich=\E[%p1%d@, ich1=\E[@, smir=\E[6, rmir=\E6,
    bold=\E[1m, rev=\E[7m, blink=\E[5m, invis=\E[8m, sgr0=\E[0m,
    sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6t1;%;m,
    kcuu1=\E[A, kcud1=\E[B, kcub1=\E[D,
    kcuf1=\E[C, khome=\E[H, kbs=^H,
    cuf1=\E[C, ht=^I, cuu1=\E[A, xon,
    rmul1=\E[m, smul=\E[4m, rmso=\E[m, smso=\E[7m,
    kpp=\E[150q, knp=\E[154q,
    kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
    kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
    kf9=\E[009q, kf10=\E[010q,
    bw, eo, it#8, ms,
    ch=\E%i%p1%dG, ech=\E[%p15dx,
    kdch1=\E[P, kind=\E[151q, kich1=\E[139q, kimr=\E[41,
    kn=^M, ko=^I, ktab=\E[Z, kri=\E[155q,
    cub=\E[%p1%dD, cuf=\E[%p1%dC, indn=\E[%p1dS, rin=\E[%p1%dT,
    ri=\E[T, cuu=\E[%p1%dA,
    box1=332\304\277\263\331\300\302\264\301\303\305,
    box2=311\315\273\272\274\310\313\271\312\314\316,
    batt2=md,
    colf0=\E[30m, colf1=\E[31m, colf2=\E[32m, colf3=\E[33m,
    colf4=\E[34m, colf5=\E[35m, colf6=\E[36m, colf7=\E[37m,
    colb0=\E[40m, colb1=\E[41m, colb2=\E[42m, colb3=\E[43m,
    colb4=\E[44m, colb5=\E[45m, colb6=\E[46m, colb7=\E[47m,
La siguiente entrada terminfo describe un terminal:
ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
        am,             mir,            cr=^M,          ind=^J,
        cols#80,        it#8,           lines#24,
kich1=\EP\040\010,
        ed=\EJ,         el=\EI,         cup=\EY%p1%' '%+%c%p2%'
'%+%c,
        clear=\EH\EJ,   dch1=\EQ,       dl1=\EO,        cud1=\EB,
        cub1=\ED,       blink=\E4D,     bold=\E4H,
sgr0=\E4@\E<@,
        invis=\E4P,     rev=\E4A,       cuf1=\EC,
rmso=\E4@,
        smso=\E4A,      rmul=\E4@,      cuu1=\EA,
smul=\E4B,
        sgr=\E4%'@'%?%p1%t%'A'%|%;
                   %?%p2%t%'B'%|%;
                   %?%p3%t%'A'%|%;
                   %?%p4%t%'D'%|%;
                   %?%p5%t%'@'%|%;
                   %?%p6%t%'H'%|%;
                   %?%p7%t%'P'%|%;%c
                   %?%p9%t\E>A%e\E<@%;,
        box1=\354\361\353\370\352\355\367\365\366\364\356,
        box2=\354\361\353\370\352\355\367\365\366\364\356,
batt2=md,
        ktbc=\E\0401,   kil1=\EN,       kbs=^H,
kclr=\EL^M,
        kcud1=\EB,      kdch1=\EQ,      kel=\EI,
khome=\EH,
        kcub1=\ED,      kdl1=\EO,       ktab=^I,        kcbt=\E2,
        kcuf1=\EC,      ked=\EJ,        kctab=\E1,      khts=\E0,
        kcuu1=\EA,      knl=\r,         kact=\E8\r,
        kf1=\Ea\r,      kf2=\Eb\r,      kf3=\Ec\r,
kf4=\Ed\r,
        kf5=\Ee\r,      kf6=\Ef\r,      kf7=\Eg\r,
kf8=\Eh\r,
        kf9=\Ei\r,      kf10=\Ej\r,     kf11=\Ek\r,
kf12=\El\r,
        kf13=\E!a\r,    kf14=\E!b\r,    kf15=\E!c\r,
kf16=\E!d\r,
        kf17=\E!e\r,    kf18=\E!f\r,    kf19=\E!g\r,
kf20=\E!h\r,
        kf21=\E!i\r,    kf22=\E!j\r,    kf23=\E!k\r,
kf24=\E!l\r,
        smcup=\E>A,     rmcup=\E>A,     msgr,
        home=\EH,       bel=^G, mc5=^P^R, mc4=^P^T,
    

Archivos

Elemento Descripción
/usr/share/lib/terminfo/?/* Base de datos de prestación de terminal compilada.