console_codes - secuencias de escape y control de la consola de Linux
La consola de Linux implementa un gran conjunto de controles de terminal de la
VT102 y del estándar ECMA-48/ISO 6429/ANSI X3.64 además de
ciertos controles propios para cambiar la paleta de colores, asociaciones de
conjuntos de caracteres, etc. En las descripciones a continuación, la
2ª columna incluye los mnemónicos ECMA-48 o DEC (éstos,
prefijados por DEC) para la función dada. Las secuencias sin un
mnemónico no son ni 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).
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 (0x07, ^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 % @ |
|
Selecciona el predeterminado (ISO 646 / ISO
8859-1) |
ESC % G |
|
Selecciona UTF-8 |
ESC % 8 |
|
Selecciona UTF-8 (obsoleto) |
ESC # 8 |
DECALN |
DEC prueba de alineació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 |
|
Selecciona predeterminado (asociación ISO 8859-1) |
ESC ( 0 |
|
Selecciona asociación de gráficos VT100 |
ESC ( U |
|
Selecciona ninguna asociación - derecho a la ROM |
ESC ( K |
|
Selecciona asociación del usuario - la 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 ] |
Pone el color n como el de subrayado. |
ESC [ 2 ; n ] |
Pone el color n como el disminuido. |
ESC [ 8 ] |
Hace al color actual el de los atributos predeterminados |
ESC [ 9 ; n ] |
Pone el tiempo de espera del blanqueado de la terminal a n
min. |
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. |
. |
|
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 de la terminal, que es lo que uno quiere
cuando la terminal 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 hay 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).
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).
Los parámetros para todas las secuencias de escape de pista del
ratón generadas por
xterm(1) codifican los parámetros
numéricos en un simple carácter como
valor+040. Por
ejemplo, '!' es 1. El sistema de coordenadas de la pantalla empieza en 1.
El modo de compatibilidad X10 envía una secuencia de escape cuando se
pulsa un botón codificando la localización y el botón del
ratón pulsado. Esto se activa enviando ESC [ ? 9 h y se desactiva con
ESC [ ? 9 l. Cuando se pulsa un botón,
xterm(1) envía ESC
[ M
bxy (6 caracteres). Aquí
b es botón-1, y
x y
y son las coordenadas x e y del ratón cuando se
pulsó el botón. Esto es el mismo código que el
núcleo también produce.
El modo de pista normal (no implementado en Linux 2.0.24) envía una
secuencia de escape cuando se pulas o se libera un botón.
También se envía información de modificador. Se habilita
enviando ESC [ ? 1000 h y se inhabilita con ESC [ ? 1000 l. Cuando se pulas o
libera un botón,
xterm(1) envía ESC [ M
bxy. Los
dos bits bajos de
b codifican información del botón:
0=MB1 pulsado, 1=MB2 pulsado, 2=MB3 pulsado, 3=liberar. Los bits más
altos codifican qué modificadores estaban pulsados cuando el
botón se hubo presionado y se añaden juntos:
4=Mayúsculas, 8=Meta, 16=Control. De nuevo
x e
y son las
coordenadas x e y del evento de ratón. La esquina superior izquierda es
(1,1).
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, "Yo soy una vt100 con opción de
vídeo avanzado") y ESC ^ ... ESC \ con los mismos significados que
los arriba indicados. Acepta ESC (, ESC ), ESC *, ESC + seguidos por 0, A, B
para el conjunto de caracteres especiales y líneas de DEC, UK y
US-ASCII, respectivamente.
El ususario podrá configurar
xterm(1) para responder a secuencias
de controles específicas de VT220, identificándose a si mismo
como VT52, VT100 y superior dependiendo del modo en que esté
configurada e inicializada.
Acepta ESC ] (OSC) para definir algunas utilidades. Además del
delimitador de cadena de ECMA-48 (ST),
xterm(1) también acepta
BEL para finalizar una cadena OSC.
xterm(1) reconoce las siguiente
secuencias de control OSC:
ESC ] 0 ; txt ST |
Pone nombre de icono y título de ventana como txt. |
ESC ] 1 ; txt ST |
Pone txt como nombre de icono. |
ESC ] 2 ; txt ST |
Pone txt como título de ventana. |
ESC ] 4 ; num; txt ST |
Defin el color ANSI num como txt. |
ESC ] 10 ; txt ST |
Asigna del color de texto dinámico el valor txt. |
ESC ] 4 6 ; nombre ST |
Cambia el nombre del archivo de registro a log. Suele estar
desactivarse durante la compilación. |
ESC ] 5 0 ; fn ST |
Pone fn como el tipo de letra. |
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. |
|
|
No tiene efecto visible en xterm. |
ESC } |
LS2R |
Invoca el conjunto de caracteres G2 como GR. |
|
|
No tiene efecto visible en xterm. |
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
Antiguas versiones
xterm(1), por ejemplo la de X11R5, interpreta el
parpadeo SGR como negrita SGR. En posteriores versiones que implementaban
colores ANSI, por ejemplo XFree86 3.1.2A en 1995, mejoraron este particular
permitiendo que el parpadeo se mostrase como un color. Las versiones
más modernas de xterm implementan el parpadeo SGR correctamente como
texto parpadeando y también permiten que los SGR se puedan mostrar como
texto coloreado como alternativa a estos SGR. Las versiones estándar de
X11R6 no reconocían la configuración de colores SGR hasta la
versión X11R6.8 que inclía el terminal de Xfree86. Todas las
secuencias de CSI de ECMA-48 reconocidas por Linux también lo son por
xterm, pero
xterm(1) implementa diversas secuencias de ECMA-48 y
DEC que Linux no reconoce.
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:
describe los combios de xterm.
Programa
vttest
muestra muchas de estas secuencias de control. El código fuente de
xterm(1) también contiene scripts con ejemplos para otras
características.
ESC 8 (DECRC) no puede reponer el conjunto de caracters modificado mediante ESC
%.
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 del 'modo privado' de Linux no siguen las convenciones de ECMA-48
para las secuencias privadas. Concretamente, las que terminan en ] no emplean
un caracter estándar para su finalización. La secuencia OSC
(definición de la paleta) constituye un problema importante ya que
xterm(1) puede interpretarla como una secuencia de control que
requeriría la presencia de un finalizador (ST). A diferencia de las
secuencias de
setterm(1), que no se tienen en cuenta la ser
inválidas, la secuencia de paleta hará que
xterm(1) se
cuelgue (resolviéndose sencillamente pulsando Intro). Para solucionar
este problema en aplicaciones en las que no es posible modificar el uso de
estas secuencias es suficiente con definir como verdadera
brokenLinuxOSC de
xterm(1).
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.
ioctl_console(2),
charsets(7)
La traducción al español de esta página del manual fue
creada por Gerardo Aburruzaga García <
[email protected]>
y Marcos Fouces <
[email protected]>
Esta traducción es documentación libre; lea la
GNU
General Public License Version 3 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
[email protected]