console_codes(4)

NOMBRE
console_codes - secuencias de escape y control de la consola de Linux

DESCRIPCIÓN
La consola Linux implementa un gran subconjunto de controles de terminal VT102 y ECMA-48 / ISO/IEC 6429 / ANSI X3.64, además de ciertas secuencias privadas para cambiar la paleta de colores, la asignación de conjuntos de caracteres, etc. En las descripciones tabulares a continuación, la segunda columna proporciona mnemónicos ECMA-48 o DEC (este último si tiene el prefijo DEC) para la función dada. Las secuencias sin mnemónico no son ECMA-48 ni VT102.

Una vez realizado todo el procesamiento de salida normal y una vez que un flujo de caracteres llega al controlador de consola para la impresión real, lo primero que ocurre es una traducción del código empleado para el procesamiento al código empleado para la impresión.

Si la consola está en el modo UTF-8, entonces los bytes que llegan se ensamblan 1º a los códigos de 16 b Unicode. Si no, cada byte se transforma según la tabla de asociaciones en curso (que lo traduce a un valor Unicode). Consulte más adelante la sección Conjuntos de caracteres para más información.

En el caso normal, el valor Unicode se convierte a un índice de tipo de letra, y éste se almacena en memoria de vídeo, de forma que aparezca en la pantalla el grafo correspondiente (según se encuentra en la ROM de vídeo). Observe que el empleo de Unicode (y el diseño del hardware del PC) nos permite usar 512 grafos diferentes simultáneamente.

Si el valor actual Unicode es un carácter de control, o estamos actualmente procesando una secuencia de escape, el valor se tratará especialmente. En vez de convertirse a un índice de tipo y presentarse como un grafismo, puede lanzar un movimiento del cursor u otra función de control. Vea la sección Controles de la consola de Linux abajo para la discusión sobre esto.

Generalmente no es una buena idea codificar directamente controles de terminal en programas. Linux tiene una base de datos terminfo(5) de capacidades de terminales. En vez de emitir a mano secuencias de escape de la consola, Ud. debería casi siempre utilizar una biblioteca de pantalla que consultara terminfo o una utilidad, como ncurses(3), tput(1), o reset(1).

  Controles de la consola de Linux
Esta sección describe todos los caracteres de control y secuencias de escape que llaman a funciones especiales (i.e., cualquier otra cosa distinta a escribir un grafo en la localización del cursor en curso) en la consola de Linux.

Caracteres de control

Un carácter lo es de control si (antes de la transformación según la tabla de asociaciones) tiene uno de los 14 códigos 00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a (LF), 0b (VT), 0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB), 1b (ESC), 7f (DEL). Uno puede establecer un modo de "mostrar caracteres de control" (vea más abajo), y permitir que los códigos 07, 09, 0b, 18, 1a, 7f se muestren como grafos. Por otro lado, en modo UTF-8 todos los códigos 00–1f se consideran como caracteres de control, sin importar ningún modo "mostrar caracteres de control".

Si tenemos un carácter de control, se actúa inmediatamente y luego se descarta (incluso en medio de una secuencia de escape) y la secuencia de escape continúa con el siguiente carácter. (Sin embargo, ESC empieza una nueva secuencia de escape, posiblemente abortando una anterior no acabada, y CAN y SUB abortan cualquier secuencia de escape). Los caracteres de control reconocidos son BEL, BS, HT, LF, VT, FF, CR, SO, SI, CAN, SUB, ESC, DEL, CSI. Hacen lo que uno esperaría:

BEL (0x07, ^G)
    pita;

BS (0x08, ^H)
    va un espacio atrás a la columna anterior (pero no pasa del principio de la línea);

HT (0x09, ^I)
    va a la siguiente parada de tabulación o al final de la línea si no hay antes una parada de tabulación;

LF (0x0A, ^J)
VT (0x0B, ^K)
FF (0x0C, ^L)
    todos dan un salto de línea; si se define LF/NL (modo de nueva línea), también un retorno de carro;

CR (0x0D, ^M)
    retorno de carro;

SO (0x0E, ^N)
    activa el conjunto de carcteres G1;

SI (0x0F, ^O)
    activa el conjunto de carcteres G0;

CAN (0x18, ^X)
SUB (0x1A, ^Z)
    Anula secuencias de Escape

ESC (0x1B, ^[)
    empieza una secuencia de escape;

DEL (0x7F)
    no se tiene en cuenta

CSI (0x9B)
    es equivalente a ESC [.

Secuencias de ESC, pero no CSI
ESC c | RIS | Inicio.
ESC D | IND | Salto de línea.
ESC E | NEL | Nueva línea.
ESC H | HTS | Pone parada tab en esta columna.
ESC M | RI | Salto de línea inverso.
ESC Z | DECID | DEC identificación privada. El núcleo devuelve la cadena ESC [ ? 6 c, diciendo que es una VT102.
ESC 7 | DECSC | Salva el estado actual (cordenadas del cursor, atributos, conjuntos de caracteres apuntados por G0, G1).
ESC 8 | DECRC | Restaura el estado salvado más reciente por ESC 7.
ESC % |  | Empieza la secuencia de selección de conjunto de caracteres
ESC % @ |  | Seleccionar predeterminado (ISO/IEC 646 / ISO/IEC 8859-1)
ESC % G |  | Selecciona UTF-8
ESC % 8 |  | Selecciona UTF-8 (obsoleto)
ESC # 8 | DECALN | DEC prueba de alíneación en pantalla - la llena de E's.
ESC ( |  | Empieza secuencia de definición del conjunto G0 (seguido de B,O,U o K)
ESC ( B |  | Seleccionar predeterminado (asignación ISO/IEC 8859-1).
ESC ( 0 |  | Selecciona asociación de gráficos VT100
ESC ( U |  | Selecciona ninguna asociación - derecho a la ROM
ESC ( K |  | Selecciona mapeo del usuario - el que se carga con mapscrn(8)
ESC ) |  | Inicia secuencia de definición G1 (seguido por uno de B, 0, U, K, como antes).
ESC > | DECPNM | Pone el teclado auxiliar en modo numérico
ESC = | DECPAM | Pone el teclado auxiliar en modo aplicación
ESC ] | OSC | Prefijo de Órdenes del Sistema Operativo.
ESC ] R |  | Paleta de Inicio.
ESC ] P |  | Define la paleta, con un parámetro dando 7 dígitos hexadecimales nrrggbb después de la última P. n es el color (0–15) y rrggbb representa los valores rojo/verde/azul (0–255).

Secuencias ECMA-48 CSI

CSI (o ESC [) va seguido por una secuencia de parámetros, como mucho NPAR (16), que son los números decimales separados por punto y comas. Un parámetro vacío o ausente se toma como 0. La secuencia de parámetros puede ir precedida por un signo de interrogación.

Sin embargo, tras CSI [ (o ESC [ [) se lee un carácter solo y esta secuencia entera no se tiene en cuenta. (La idea es no tener en cuenta una tecla de función que se muestra.)

La acción de una secuencia CSI se determina por su carácter final.
@ | ICH | Insertar el Nº indicado de caracteres blancos
A | CUU | Mover cursor arriba el Nº indicado de filas
B | CUD | Mover cursor abajo el Nº indicado de filas
C | CUF | Mover cursor a la derecha el Nº indicado de columnas
D | CUB | Mover cursor a la izquierda el Nº indicado de columnas
E | CNL | Mover cursor abajo el Nº indicado de filas, a la columna 1
F | CPL | Mover cursor arriba el Nº indicado de filas, a la columna 1
G | CHA | Mover cursor a la columna indicada en la fila actual
H | CUP | Mover cursor a la fila y columna indicadas (origen en 1,1)
J | ED | Borrar pantalla (p. o.: desde el cursor al final de la pantalla).
 |  | ESC [ 1 J: borrar desde el comienzo hasta el cursor.
 |  | ESC [ 2 J: borrar la pantalla entera.
 |  | ESC [ 3 J: borrar la pantalla entera incluído el búffer con los datos para ver el trabajo anterior haciendo scroll (a partir de la versión 3.0).
K | EL | Borrar línea (p.o.: desde el cursor al final de la línea).
 |  | ESC [ 1 K: borrar desde el comienzo de la línea al cursor
 |  | ESC [ 2 K: borrar la línea entera.
L | IL | Insertar el Nº indicado de líneas en blanco
M | DL | Borrar el Nº indicado de líneas
P | DCH | Borrar el Nº indicado de caracteres en la línea actual.
X | ECH | Borrar el Nº indicado de caracteres en la línea actual.
a | HPR | Mover cursor a la derecha el Nº indicado de columnas
c | DA | Reponder ESC [ ? 6 c: "Yo soy una VT102".
d | VPA | Mover cursor a la fila y columna indicadas
e | VPR | Mover cursor abajo el Nº indicado de filas
f | HVP | Mover cursor a la fila y columna indicadas.
g | TBC | Sin parámetro: quita parada TAB en la posición actual.
 |  | ESC [ 3 g: borra todas las paradas de tabulación.
h | SM | Establece Modo (vea abajo).
l | RM | Restablece Modo (vea abajo).
m | SGR | Establece atributos (vea abajo).
n | DSR | Informe de estado (vea abajo).
q | DECLL | Establece los LEDs del teclado.
 |  | ESC [ 0 q: apaga todos los LEDs
 |  | ESC [ 1 q: pone LED Bloq. Despl.
 |  | ESC [ 2 q: pone LED Bloq. Num.
 |  | ESC [ 3 q: pone LED Bloq. Mayús.
r | DECSTBM | Establece región de rodadura; los parámetros son la fila de arriba y abajo.
s | ? | Salva la localización del cursor.
u | ? | Restaura la localización del cursor.
` | HPA | Mover cursor a la columna indicada en la fila actual

ECMA-48 Selecciona el Modo Gráfico

La secuencia ECMA-48 SGR ESC [ parámetros m establece los atributos de la pantalla. Se pueden poner varios atributos en la misma secuencia separados entre si por punto y comas. Un parámetro vacío (entre punto y comas o principio o final de cadena) se interpreta como cero.
param | resultado
0 | restablece todos los atributos a sus valores predeterminados
1 | pone negrillas
2 | pone medio brillo (simulado con color en una pantalla a color)
3 | define cursiva (a partir de Linux 2.6.22; simulado con color en una pantalla a color)
4 | pone subrayado (simulado con color en una pantalla a color) (los colores para simular disminución o subrayado se ponen con ESC ] ...)
5 | pone intermitencia
7 | pone vídeo inverso
10 | restaura asociación seleccionada, indicador de control de pantalla y cambia el indicador meta (ECMA-48 dice 'fuente primaria')
11 | selecciona no asociación, pone indicador de control de pantalla, restaura indicador de cambio meta (ECMA-48 dice "primera fuente alternativa").
12 | selecciona no asociación, pone indicador de control de pantalla, pone indicador de cambio meta (ECMA-48 dice 'segunda fuente alternativa')(que hace que el bit más alto de un byte cambie antes de que se haga la traducción de la tabla de asociación.)
21 | define subrayado; antes de la versión 4.17 de Linux, definía intensidad normal (tal como hacen otras muchas terminales).
22 | pone intensidad normal
23 | Cursiva deshabilitada (a partir de Linux 2.6.22)
24 | quita subrayado
25 | quita intermitencia
27 | quita vídeo inverso
30 | pone negro
31 | pone rojo
32 | pone verde
33 | pone marrón
34 | pone azul
35 | pone rosa
36 | pone celeste
37 | pone blanco
38 | Sigue un color de 256/24-bit encastrado en 16 colores básicos En versiones de Linux anteriores a la 3.16: activa el subrayado, define el color de primer plano por defecto.
39 | color por defecto de primer plano En versiones de Linux anteriores a la 3.16, desactiva el subrayado, define el color por defecto de primer plano.
40 | pone negro de fondo
41 | pone rojo de fondo
42 | pone verde de fondo
43 | pone marrón de fondo
44 | pone azul de fondo
45 | pone rosa de fondo
46 | pone celeste de fondo
47 | pone blanco de fondo
48 | Sigue un color de fondo de 256/24 bits encastrado en 8 colores básicos
49 | pone el color de fondo predeterminado
90..97 | versión brillante de 30..37 del color de primer plano
100..107 | color de fondo, igual a 40..47 (brillo no implementado)

Las ordenes 38 48 requiere argumentos adicionales:
;5;x | paleta 256 colores: los valores 0-15 corresponden a IBGR (negro, rojo, verde, ..., blanco), 16-231 forman un cubo de color de 6x6x6 y el intervalo 235-255 corresponde a una escala gradual de grises
;2;r;g;b | color de 24 bits, sus componentes r/g/b están en el intervalor 0-255

Interruptores de Modo ECMA-48

ESC [ 3 h
    DECCRM (por omisión desactivado): Mostrar caracteres de control

ESC [ 4 h
    DECIM (por omisión desactivado): Poner modo de inserción

ESC [ 20 h
    LF/NL (por omisión desactivado): Automáticamente seguir a LF, VT o FF con CR.

Órdenes de Informe de Estado ECMA-48

ESC [ 5 n
    Informe de estado de dispositivo (DSR): La respuesta es ESC [ 0 n (Terminal OK).

ESC [ 6 n
    Informe de posición de cursor (CPR): La respuesta es ESC [ y ; x R, donde x,y es la localización del cursor.

Secuencias de Modo Privado DEC (DECSET/DECRST)

Éstas no se describen en ECMA-48. Listamos las secuencias de Establecer Modo; las de Reestablecer Modo se obtienen reemplazando la 'h' final por 'l'.

ESC [ ? 1 h
    DECCKM (por omisisón desactivado): Cuando está activado, las teclas de cursor envían un prefijo ESC O, en vez de ESC [.

ESC [ ? 3 h
    DECCOLM (por omisión desactivado = 80 columnas): interruptor de modo 80/132 columnas. En los fuentes del controlador se hace notar que esto solo no basta; alguna utilidad de usuario como resizecons(8) tiene que cambiar los registros de hardware en la tarjeta de vídeo de consola.

ESC [ ? 5 h
    DECSCNM (por omisión desactivado): Pone el modo de vídeo inverso

ESC [ ? 6 h
    DECOM (por omisión desactivado): Cuando está activado, el direccionamiento del cursor es relativo a la esquina superior izquierda de la región de rodadura.

ESC [ ? 7 h
    DECAWM (por omisión activado): Activa el paso automático de renglón. En este modo, un carácter gráfico emitido tras la columna 80 (o la 132 si está activado DECCOLM) fuerza un cambio al principio de la siguiente línea.

ESC [ ? 8 h
    DECARM (por omisión activado): Activa la auto-repetición del teclado.

ESC [ ? 9 h
    Informe de Ratón X10 (por omisión desactivado): Establece el modo de informe a 1 (o lo restaura a 0)—vea abajo.

ESC [ ? 25 h
    DECTECM (por omisión activado): Hace visible el cursor.

ESC [ ? 1000 h
    Informe de Ratón X11 (por omisión desactivado): Establece el modo de informe a 2 (o lo restaura a 0)—vea abajo.

Secuencias Privadas de Consola de Linux CSI

Las siguientes secuencias no son ni ECMA-48 ni VT102 nativas. Son nativas al controlador de consola de Linux. Los colores están en los parámetros SGR: 0 = negro, 1 = rojo, 2 = verde, 3 = marrón, 4 = azul, 5 = rosa, 6 = celeste, 7 = blanco; 8–15 = versión con brillo de 0–7.
ESC [ 1 ; n ] | Establece n como color de subrayado.
ESC [ 2 ; n ] | Establece n como color de atenuación.
ESC [ 8 ] | Hace al color actual el de los atributos predeterminados
ESC [ 9 ; n ] | Pone el tiempo de espera del borrado de terminal a n minutos.
ESC [ 10 ; n ] | Establece la frecuencia del pito en Hz.
ESC [ 11 ; n ] | Establece la duración del pitido en ms.
ESC [ 12 ; n ] | Trae al frente la consola especificada.
ESC [ 13 ] | Quita el blanco de la pantalla.
ESC [ 14 ; n ] | Establece el intervalo de apagado VESA en min.
ESC [ 15 ] | Trae al frente la consola especificada. A partir de la versión 2.6.0 de Linux.
ESC [ 16 ; n ] | Define la cadencia de parpadeo del cursor en milisegundos . A partir de la versión 4.2 de Linux.

  Conjunto de Caracteres
El núcleo sabe de 4 traducciones de bytes a símbolos de la pantalla de la consola. Las cuatro tablas son: a) Latin1 -> PC, b) gráficos VT100 -> PC, c) PC -> PC, d) definida por el usuario.

Hay dos conjuntos de caracteres, llamados G0 y G1, y uno de ellos es el actual. (Inicialmente G0.) Teclear ^N hace que G1 sea el actual, ^O hace a G0 el actual.

Estas variables G0 y G1 apuntan a una tabla de traducción, y pueden ser cambiadas por el usuario. Inicialmente apuntan a las tablas a) y b) respectivamente. Las secuencias ESC ( B y ESC ( 0 y ESC ( U y ESC ( K causan que G0 apunte a la tabla a), b), c) y d) respectivamente. Las secuencias ESC ) B y ESC ) 0 y ESC ) U y ESC ) K causan que G1 apunte a la tabla a), b), c) y d), respectivamente.

La secuencia ESC c provoca el reseteo del terminal, que es lo deseable cuando éste se bloquea. El antiguo truco "echo ^V^O" ahora equivale a G0, pero no hay garantías de que G0 apunte a la tabla a). En algunas distribuciones está disponible un programa reset(1) que simplemente hace "echo ^[c". Si la entrada de terminfo para la consola es correcta (consiste en rs1=\Ec), entonces "tput reset" también funcionará.

La tabla de asociación definida por el usuario puede ponerse con mapscrn(8). El resultado de la asociación es que si hay un símbolo c que se imprime, se envía a la memoria de vídeo el símbolo s = map[c]. El mapa de bits que corresponde a s se encuentra en la ROM de caracteres, y puede cambiarse mediante setfont(8).

  Seguimiento del ratón
La facilidad de seguimiento de pista del ratón sirve para devolver informes de estado del ratón compatibles con xterm(1). Puesto que el controlador de consola no tiene forma de conocer el dispositivo ni tipo del ratón, estos informes se devuelven en el flujo de entrada de la consola sólo cuando del controlador de terminal virtual recibe un ioctl de actualización de ratón. Estos ioctls deben ser generados por una aplicación de usuario que haga uso del ratón como el duende gpm(8).

Las secuencias de escape de seguimiento del ratón generadas por xterm(1) codifican parámetros numéricos en un solo carácter como valor+040. Por ejemplo, '!' es 1. El sistema de coordenadas de la pantalla está basado en 1.

El modo de compatibilidad X10 envía una secuencia de escape al pulsar un botón, codificando la ubicación y el botón del ratón pulsado. Se activa enviando ESC [ ? 9 h y se desactiva con ESC [ ? 9 l. Al pulsar un botón, xterm(1) envía ESC [ M bxy (6 caracteres). Aquí b es el botón-1, e x e y son las coordenadas x e y del ratón al pulsar el botón. Este es el mismo código que genera el núcleo.

El modo de seguimiento normal (no implementado en Linux 2.0.24) envía una secuencia de escape al presionar y soltar el botón. También se envía información de los modificadores. Se habilita enviando ESC [ ? 1000 h y se deshabilita con ESC [ ? 1000 l. Al presionar o soltar el botón, xterm(1) envía ESC [ M bxy. Los dos bits inferiores de b codifican la información del botón: 0=MB1 presionado, 1=MB2 presionado, 2=MB3 presionado, 3=soltar. Los bits superiores codifican los modificadores que estaban presionados al presionar el botón y se suman: 4=Mayús, 8=Meta, 16=Control. Nuevamente, x e y son las coordenadas x e y del evento del ratón. La esquina superior izquierda es (1,1).

  Comparación con otras terminales
Muchos tipos diferentes de terminal se describen, como la consola de Linux, como "compatibles VT100". Aquí se discuten las diferencias entre la consola de Linux y las otras dos más importantes, la VT102 de DEC y la xterm(1).

Manejo de caracteres de control

La VT102 también reconocía los siguientes caracteres de control:

NUL (0x00)
    no se tuvo en cuenta

ENQ (0x05)
    lanzaba un mensaje de reconocimiento;

DC1 (0x11, ^Q, XON)
    reanudaba la transmisión;

DC3 (0x13, ^S, XOFF)
    hacía que la VT100 no tuviera en cuenta (y parara la transmisión) ningún código excepto XOFF y XON.

El controlador del terminal puede habilitar el procesamiento de DC1/DC3 al estilo de la VT100.

El programa xterm(1) (en modo VT100) reconoce los caracteres de control BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC.

Secuencias de Escape

Secuencias de consola VT100 no implementadas en la consola de Linux:
ESC N | SS2 | Simple cambio 2. (Selecciona el conjunto de caracteres G2 sólo para el siguiente carácter.)
ESC O | SS3 | Simple cambio 3. (Selecciona el conjunto de caracteres G3 sólo para el siguiente carácter.)
ESC P | DCS | Cadena de control de dispositivo (acabada por ESC \)
ESC X | SOS | Comienzo de cadena.
ESC ^ | PM | Mensaje de privacidad (acabado por ESC \)
ESC \ | ST | Terminador de cadena
ESC * ... |  | Designa el conjunto de caracteres G2
ESC + ... |  | Designa el conjunto de caracteres G3

El programa xterm(1) (en modo VT100) reconoce ESC c, ESC # 8, ESC >, ESC =, ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \, ESC Z (responde ESC [ ? 1 ; 2 c, "Soy un VT100 con opción de video avanzada") y ESC ^ ... ESC \ con los mismos significados que los indicados anteriormente. Acepta ESC (, ESC ), ESC *, ESC + seguido de 0, A, B para el conjunto de caracteres especiales y dibujo de líneas DEC, UK y US-ASCII, respectivamente.

El usuario puede configurar xterm(1) para que responda a las secuencias de control específicas de VT220 y se identificará como VT52, VT100 y superior, según su configuración e inicialización.

Acepta ESC ] (OSC) para la configuración de algunos recursos. Además del terminador de cadena ECMA-48 (ST), xterm(1) acepta un BEL para terminar una cadena OSC. Estas son algunas de las secuencias de control OSC reconocidas por xterm(1):
ESC ] 0 ; txt ST | Pone nombre de icono y título de ventana como txt.
ESC ] 1 ; txt ST | Establece el nombre del icono en txt.
ESC ] 2 ; txt ST | Establece el título de la ventana en txt.
ESC ] 4 ; num; txt ST | Establece el color ANSI num en txt.
ESC ] 10 ; txt ST | Establece el color del texto dinámico en txt.
ESC ] 4 6 ; nombre ST | Cambia el nombre del archivo de registro a nombre Suele dejarse desactivado al compilarlo.
ESC ] 5 0 ; fn ST | Establece la fuente en fn.

Reconoce lo siguiente con un significado ligeramente modificado (comportándose de un modo más similar a VT100/VT220):
ESC 7 DECSC | Guarda el cursor
ESC 8 DECRC | Restaura el cursor

También reconoce:
ESC F |  | Cursor a esquina inferior izda. de la pantalla (si está activado por la utilidad hpLoerleftBugCompat de xterm(1)).
ESC l |  | Bloqueo de memoria (por terminales HP).
 |  | Bloquea la memoria sobre el cursor.
ESC m |  | Desbloqueo de memoria (por terminales HP).
ESC n | LS2 | Invoca el conjunto de caracteres G2.
ESC o | LS3 | Invoca el conjunto de caracteres G3.
ESC | | LS3R | Invoca el conjunto de caracteres G3 como GR.
ESC } | LS2R | Invoca el conjunto de caracteres G2 como GR.
ESC ~ | LS1R | Invoca el conjunto de caracteres G1 como GR.

También reconoce ESC % y aporta una implementación de UTF-8 más completa que la consola de Linux.

Secuencias CSI

Las versiones antiguas de xterm(1), por ejemplo, de X11R5, interpretan la SGR de parpadeo como una SGR en negrita. Las versiones posteriores que implementaron colores ANSI, como XFree86 3.1.2A en 1995, mejoraron esto al permitir que el atributo de parpadeo se mostrara como un color. Las versiones modernas de xterm implementan la SGR de parpadeo como texto parpadeante y aún permiten texto en color como representación alternativa de las SGR. Las versiones estándar de X11R6 no reconocían las SGR de configuración de color hasta la versión X11R6.8, que incorporó xterm de XFree86. Todas las secuencias CSI ECMA-48 reconocidas por Linux también son reconocidas por xterm; sin embargo, xterm(1) implementa varias secuencias de control ECMA-48 y DEC no reconocidas por Linux.

El programa xterm reconocerá todas las secuencias de Modo Privado de DEC listadas arriba, pero ninguna de las secuencias de modo privado de Linux. Para una discusión sobre las propias secuencias de modo privado de xterm, refiérase al documento Xterm Control Sequences de Edward Moy, Stephen Gildea y Thomas E. Dickey disponible con la distribución X-Window. Dicho documento, aunque succinto, es más amplio que esta página de manual. En esta dirección podrá econtrar un resumen cronológico:

    http://invisible-island.net/xterm/xterm.log.html

describe los combios de xterm.

Programa vttest

    http://invisible-island.net/vttest/

Muestra muchas de estas secuencias de control. El código fuente de xterm(1) también contiene scripts de ejemplo que ejecutan otras funciones.

NOTAS
ESC 8 (DECRC) no puede reponer el conjunto de caracters modificado mediante ESC %.

ERRORES
En la versión del núcleo 2.0.23, CSI no funciona, y NUL no se tiene en cuenta dentro de secuencias de escape.

Algunas versiones antiguas del núcleo (posterior a 2.0) interpretan secuencias de control de 8 bits. Estos "controles C1" emplean códigos entre 128 y 159 para susituir ESC [, ESC ] y otros iniciadores de secuencias de 2 bytes. Existen algunos vestigios de ello en núcleo modernos que, o bien han sido pasados por alto o bien quedaron inhabilitados durante la implementación de UTF-8. En cualquier caso, la implementación está incompleta y no debe considerarse su uso.

Las secuencias de «modo privado» de Linux no siguen las reglas de ECMA-48 para dichas secuencias de control. En particular, las que terminan en ] no utilizan un carácter de terminación estándar. La secuencia OSC (set palette) presenta un mayor problema, ya que xterm(1) puede interpretarla como una secuencia de control que requiere un terminador de cadena (ST). A diferencia de las secuencias setterm(1), que se ignorarán (ya que son secuencias de control inválidas), la secuencia de paleta hará que xterm(1) parezca colgarse (aunque «vuelve a la vida» al presionar la tecla Intro). Para adaptar las aplicaciones que han sido codificadas para usar secuencias de control de Linux, define brokenLinuxOSC de xterm(1) como verdadero.

Una versión anterior de este documento asumía uqe Linux reconocía la secuencia de control para texto invisible de ECMA-48. Esto no se considera.

VÉASE TAMBIÉN
ioctl_console(2), charsets(7)

TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Gerardo Aburruzaga García <gerardo.aburruzaga@uca.es> y Marcos Fouces <marcos@debian.org>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.