Código de escape ANSI

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Método utilizado para las opciones de visualización en terminales de texto de vídeo

Las secuencias de escape ANSI son un estándar para la señalización en banda para controlar la ubicación del cursor, el color, el estilo de fuente y otras opciones en terminales de texto de video y emuladores de terminales. Ciertas secuencias de bytes, la mayoría comenzando con un carácter de escape ASCII y un carácter de corchete, están incrustadas en el texto. El terminal interpreta estas secuencias como comandos, en lugar de texto para mostrar textualmente.

Las secuencias ANSI se introdujeron en la década de 1970 para reemplazar las secuencias específicas del proveedor y se generalizaron en el mercado de equipos informáticos a principios de la década de 1980. Se utilizan en aplicaciones de desarrollo, científicas y comerciales basadas en texto, así como en sistemas de tablones de anuncios para ofrecer una funcionalidad estandarizada.

Aunque los terminales de texto de hardware se han vuelto cada vez más escasos en el siglo XXI, la relevancia del estándar ANSI persiste porque la gran mayoría de los emuladores de terminales y las consolas de comando interpretan al menos una parte del estándar ANSI.

Historia

Casi todos los fabricantes de terminales de video agregaron secuencias de escape específicas del proveedor para realizar operaciones como colocar el cursor en posiciones arbitrarias en la pantalla. Un ejemplo es el terminal VT52, que permitía colocar el cursor en una ubicación x,y en la pantalla enviando el ESC carácter, un Y, y luego dos caracteres que representen valores numéricos iguales a la ubicación x,y más 32 (comenzando así en el carácter de espacio ASCII y evitando los caracteres de control). El Hazeltine 1500 tenía una característica similar, invocada usando ~, DC1 y luego las posiciones X e Y separadas con una coma Si bien los dos terminales tenían una funcionalidad idéntica en este sentido, se tuvieron que usar diferentes secuencias de control para invocarlos.

Como estas secuencias eran diferentes para diferentes terminales, se tuvieron que crear bibliotecas elaboradas como termcap ("capacidades de terminal") y utilidades como tput para que los programas pudieran usar la misma API para trabajar con cualquier terminal. Además, muchas de estas terminales requerían enviar números (como fila y columna) como los valores binarios de los caracteres; para algunos lenguajes de programación y para sistemas que no usaban ASCII internamente, a menudo era difícil convertir un número en el carácter correcto.

El estándar ANSI intentó abordar estos problemas creando un conjunto de comandos que todos los terminales usarían y requiriendo que toda la información numérica se transmitiera como números ASCII. El primer estándar de la serie fue ECMA-48, adoptado en 1976. Fue una continuación de una serie de estándares de codificación de caracteres, siendo el primero ECMA-6 de 1965, un estándar de 7 bits del que se origina ISO 646. El nombre "secuencia de escape ANSI" data de 1979 cuando ANSI adoptó ANSI X3.64. El comité ANSI X3L2 colaboró con el comité ECMA TC 1 para producir estándares casi idénticos. Estos dos estándares se fusionaron en un estándar internacional, ISO 6429. En 1994, ANSI retiró su estándar a favor del estándar internacional.

DEC VT100 terminal
La terminal de visualización de vídeo DEC VT100.

El primer terminal de video popular que admitió estas secuencias fue el Digital VT100, presentado en 1978. Este modelo tuvo mucho éxito en el mercado, lo que provocó una variedad de clones VT100, entre los primeros y más populares de los cuales estaba el mucho más asequible Zenith Z-19 en 1979. Otros incluyeron Qume QVT-108, Televideo TVI-970, Wyse WY-99GT, así como el opcional "VT100" o "VT103" o "ANSI" modos con diversos grados de compatibilidad en muchas otras marcas. La popularidad de estos gradualmente condujo a más y más software (especialmente sistemas de tablones de anuncios y otros servicios en línea) suponiendo que las secuencias de escape funcionaran, lo que llevó a casi todas las nuevas terminales y programas emuladores a admitirlas.

En 1981, la publicación 86 de FIPS adoptó ANSI X3.64 para su uso en el gobierno de los EE. UU. Más tarde, el gobierno de los EE. UU. dejó de duplicar los estándares de la industria, por lo que la publicación FIPS. 86 fue retirado.

ECMA-48 se ha actualizado varias veces y actualmente se encuentra en su quinta edición, de 1991. También es adoptado por ISO e IEC como estándar ISO/IEC 6429. Se adopta una versión como estándar industrial japonés, como JIS X 0211.

Los estándares relacionados incluyen ITU T.61, el estándar Teletex, y ISO/IEC 8613, el estándar de Arquitectura de documento abierto (principalmente ISO/IEC 8613-6 o ITU T.416). Los dos sistemas comparten muchos códigos de escape con el sistema ANSI, con extensiones que no son necesariamente significativas para las terminales de computadora. Ambos sistemas cayeron rápidamente en desuso, pero ECMA-48 marca las extensiones utilizadas en ellos como reservadas.

Soporte de plataforma

Sistemas similares a Unix

Xterm terminal emulator
El emulador terminal Xterm.

En estos sistemas, el terminal (o emulador) se autoidentifica mediante la variable de entorno $TERM. Una biblioteca de base de datos como termcap o terminfo realizaría una búsqueda para derivar las capacidades del terminal y las secuencias de escape específicas para usar las capacidades, que pueden desviarse de ANSI en los primeros días.

Aunque estas bibliotecas se desarrollaron principalmente en y para Unix, a mediados de la década de 1980, los programas que se ejecutaban en sistemas operativos similares a Unix casi siempre podían asumir que estaban usando un terminal o emulador compatible con secuencias ANSI; esto condujo al uso generalizado de ANSI por parte de los programas que se ejecutan en esas plataformas. Por ejemplo, muchos juegos y scripts de shell, y utilidades como listas de directorios de colores, escriben directamente las secuencias ANSI y, por lo tanto, no se pueden usar en una terminal que no las interprete. Muchos programas, incluidos los editores de texto como vi y GNU Emacs, usan termcap o terminfo, o usan bibliotecas como curses que usan termcap o terminfo y, por lo tanto, en teoría admiten terminales que no son ANSI, pero esto se prueba tan raramente hoy en día que son es poco probable que funcione con esos terminales.

Los emuladores de terminal para comunicarse con programas locales, así como con máquinas remotas y la consola del sistema de texto casi siempre admiten códigos de escape ANSI. Esto incluye emuladores de terminal como xterm, rxvt, GNOME Terminal y Konsole en sistemas con sistemas de ventanas basados en X11 o Wayland, y Terminal.app y emuladores de terminal de terceros como iTerm2 en macOS.

CP/M

A 1980s Kaypro II, a CP/M-80 PC. Emuló nativamente ADM-3A y también apoyó un modo terminal (siendo demostrado).

Las máquinas CP/M variaban y existían varias terminales de la competencia, como para impresoras, cada una con sus propias secuencias de control. Algunos de los primeros sistemas no tenían periféricos (necesitaban una terminal externa) y las computadoras personales con una pantalla nativa generalmente emulaban una terminal. Los desarrolladores de aplicaciones tenían que admitir varios terminales populares y proporcionar un programa de instalación para configurarlos. A pesar de la capa de abstracción de hardware (BIOS) de CP/M, incluso para el mismo microprocesador, los proveedores proporcionaron versiones específicas de la plataforma debido a los formatos de disco de la competencia, que también estarían preconfigurados para el terminal nativo (por ejemplo, varias adaptaciones de WordStar específicas de la máquina). fueron liberados).

Por lo general, el Altair 8800 sin auriculares se conectaba a un teletipo como el Model 33 ASR oa un terminal externo como el TeleVideo 920C, que necesitaba emitir sus respectivas secuencias. Las computadoras Osborne 1 y Kaypro II emularon de forma nativa un subconjunto de los códigos de control TeleVideo 920C y ADM-3A, respectivamente. El TRS-80 Model 4 y el Xerox 820 también emularon el Lear Siegler ADM-3A. Las computadoras Zenith Z-89, Heathkit H8 y Amstrad PCW CP/M-80 implementaron los códigos de terminal Zenith Z19 (Heathkit H19), en su mayoría compatibles con VT52, el manual Z-89 también lo describe como compatible con ANSI.

La Microsoft Z-80 SoftCard para Apple II emuló un subconjunto limitado de Videx Videoterm, correspondiente a las secuencias Datamedia 1520 que admitía Apple Pascal basado en UCSD. Su CP/M disponía del comando CONFIGIO para adaptar terminales externos o ejecutar aplicaciones locales que emitían otros códigos de control. Los terminales externos admitidos fueron Soroc IQ 120/140 y Hazeltine 1500/1510.

DOS, OS/2 y Windows

MS-DOS 1.x no admitía ANSI ni ninguna otra secuencia de escape. El BIOS subyacente solo interpretó unos pocos caracteres de control (BEL, CR, LF, BS), lo que hace que sea casi imposible realizar cualquier tipo de aplicación de pantalla completa. Cualquier efecto de visualización tenía que hacerse con llamadas al BIOS, que eran notoriamente lentas, o manipulando directamente el hardware de la PC de IBM.

DOS 2.0 introdujo la capacidad de agregar un controlador de dispositivo para las secuencias de escape ANSI; el estándar de facto es ANSI.SYS, pero otros como ANSI.COM, NANSI.SYS y ANSIPLUS.EXE se utilizan como bien (estos son considerablemente más rápidos ya que pasan por alto el BIOS). La lentitud y el hecho de que no estuviera instalado por defecto hacía que el software rara vez lo aprovechara; en cambio, las aplicaciones continuaron manipulando directamente el hardware para obtener la visualización de texto necesaria. ANSI.SYS y controladores similares continuaron funcionando en Windows 9x hasta Windows Me y en sistemas derivados de NT para programas heredados de 16 bits que se ejecutan bajo NTVDM.

Muchos clones de DOS pudieron interpretar las secuencias y no requieren que se cargue un controlador ANSI por separado. PTS-DOS, así como DOS concurrente, DOS multiusuario y REAL/32 tienen soporte integrado (además de una serie de extensiones). OS/2 tenía un comando ANSI que habilitaba las secuencias.

La consola de Windows no admitía secuencias de escape ANSI, ni Microsoft proporcionó ningún método para habilitarlas. Algunos reemplazos o adiciones para la ventana de la consola, como TCC de JP Software (anteriormente 4NT), ANSI.COM de Michael J. Mefford, ANSICON y ConEmu de Maximus5 interpretó las secuencias de escape ANSI impresas por los programas. Un paquete de Python llamado colorama interpreta internamente las secuencias de escape ANSI en el texto que se está imprimiendo, traduciéndolas a llamadas win32 para modificar el estado de la terminal, para facilitar la transferencia del código Python usando ANSI a Windows. Cygwin realiza una traducción similar a todos los resultados escritos en la consola usando los descriptores de archivos de Cygwin, el filtrado se realiza mediante las funciones de salida de cygwin1.dll, para permitir la transferencia del código POSIX C a Windows.

En 2016, Microsoft lanzó la actualización de Windows 10, versión 1511, que inesperadamente implementó la compatibilidad con las secuencias de escape ANSI, más de dos décadas después del debut de Windows NT. Esto se hizo junto con el subsistema de Windows para Linux, lo que permitió que el software basado en terminal similar a Unix usara las secuencias en la consola de Windows. El valor predeterminado es desactivado, pero Windows PowerShell 5.1 lo habilitó. PowerShell 6 hizo posible incrustar el carácter ESC necesario en una cadena con `e.

Windows Terminal, presentado en 2019, admite las secuencias de forma predeterminada y Microsoft tiene la intención de reemplazar la Consola de Windows con Windows Terminal.

Serie Atari ST/TT/Falcon

Atari TOS usó el sistema de comandos adaptado del VT52 con algunas expansiones para admitir colores, en lugar de admitir códigos de escape ANSI.

Amiga OS

AmigaOS no solo interpreta las secuencias de código ANSI para la salida de texto en la pantalla, el controlador de impresora de AmigaOS también las interpreta (con extensiones propias de AmigaOS) y las traduce a los códigos requeridos para la impresora en particular que está realmente conectada.

Secuencias de control de estilo de ventana Amiga CLI (Shell)
Efecto
ESC [ # Establece la longitud máxima de las líneas en la ventana a n.
ESC [ # Establece el número máximo de líneas en ventana a n.
ESC [ # Empieza texto n píxeles desde el borde izquierdo de la ventana.
ESC [ # Empieza texto n píxeles desde el borde superior de la ventana.

VMS/OpenVMS

VMS fue diseñado para ser controlado mediante terminales de video basados en texto de Digital, como el mencionado VT100; por lo tanto, el software tiende a escribir las secuencias de escape ANSI directamente (y no funcionará en terminales que no sean ANSI).

Descripción

Códigos de control C0

Casi todos los usuarios asumen algunas funciones de algunos caracteres de un solo byte. Inicialmente definido como parte de ASCII, el conjunto de códigos de control C0 predeterminado ahora se define en ISO 6429 (ECMA-48), lo que lo convierte en parte del mismo estándar que el conjunto C1 invocado por las secuencias de escape ANSI (aunque ISO 2022 permite que ISO 6429 C0 configurado para usarse sin el conjunto ISO 6429 C1, y viceversa, siempre que 0x1B sea siempre ESC). Esto se usa para acortar la cantidad de datos transmitidos o para realizar algunas funciones que no están disponibles en las secuencias de escape:

Códigos populares de control C0 (no una lista exhaustiva)
^C0AbbrNombreEfecto
^ G7BELBellHace un ruido audible.
^ H8BSBackspaceMueva el cursor izquierdo (pero puede "envolver" si el cursor está al inicio de la línea).
^ I9HTTabMueva el cursor derecho al siguiente múltiplo de 8.
^J0x0ALFLínea de alimentaciónSe mueve a la siguiente línea, desplaza la pantalla hacia arriba si en la parte inferior de la pantalla. Normalmente no se mueve horizontalmente, aunque los programas no deben depender de esto.
^ L0x0CFFForma FeedMueva una impresora a la parte superior de la siguiente página. Normalmente no se mueve horizontalmente, aunque los programas no deben depender de esto. Efecto en terminales de vídeo varía.
^M0x0DCRCarriage ReturnMueva el cursor a la columna cero.
^0x1BESCEscapeEmpieza todas las secuencias de escape

Las secuencias de escape varían en duración. El formato general para una secuencia de escape compatible con ANSI está definido por ANSI X3.41 (equivalente a ECMA-35 o ISO/IEC 2022). Las secuencias de escape constan solo de bytes en el rango 0x20—0x7F (todos los caracteres ASCII que no son de control) y se pueden analizar sin mirar hacia adelante. El comportamiento cuando se encuentra un carácter de control, un byte con el bit alto establecido o un byte que no forma parte de ninguna secuencia válida, se encuentra antes del final no está definido.

Fe Secuencias de escape

Si ESC va seguido de un byte en el rango de 0x40 a 0x5F, la secuencia de escape es del tipo Fe. Su interpretación se delega al estándar de código de control C1 aplicable. En consecuencia, todas las secuencias de escape correspondientes a los códigos de control C1 de ANSI X3.64 / ECMA-48 siguen este formato.

El estándar dice que, en entornos de 8 bits, el control funciona correspondiente al tipo Fe (aquellas del conjunto de códigos de control C1) se pueden representar como bytes individuales en el rango 0x80–0x9F. Esto es posible en codificaciones de caracteres conforme a las disposiciones para un código de 8 bits realizadas en ISO 2022, como la serie ISO 8859. Sin embargo, en las codificaciones de caracteres que se usan en dispositivos modernos como UTF-8 o CP-1252, esos códigos a menudo se usan para otros fines, por lo que normalmente solo se usa la secuencia de 2 bytes. En el caso de UTF-8, representar un código de control C1 a través de los controles C1 y el bloque Suplemento Latin-1 da como resultado un código diferente de dos bytes (por ejemplo, 0xC2,0x8E para U+008E), pero no se guarda espacio de esta manera.

Tipo Fe (Elemento de serie C1) secuencias de escape ANSI (no una lista exhaustiva)
CódigoC1AbbrNombreEfecto
ESC N0x8ESS2Cambio único Dos. Seleccione un único personaje de uno de los conjuntos de caracteres alternativos. SS2 selecciona el conjunto de caracteres G2, y SS3 selecciona el conjunto de caracteres G3. En un entorno de 7 bits, esto es seguido por uno o más bytes GL (0x20–0x7F) especificando un personaje de ese conjunto. En un entorno de 8 bits, estos pueden ser bytes GR (0xA0-0xFF).
ESC O0x8FSS3Cambio único Tres.
ESC P0x90DCSCierre de control de dispositivos Terminado por ST. Los usos de esta secuencia de Xterm incluyen definir Claves definidas por el Usuario y solicitar o establecer datos de Termcap/Terminfo.
ESC [0x9BCSIControl Sequence Introducer Empieza la mayoría de las secuencias útiles, terminadas por un byte en el rango 0x40 a 0x7E.
ESC 0x9CSTString Terminator Termina cadenas en otros controles.
ESC ]0x9DOSCMando del sistema operativo Empieza una cadena de control para el sistema operativo a utilizar, terminada por ST.
ESC X0x98SOSInicio de la cuerda Toma un argumento de una cadena de texto, terminada por ST. Los usos para estas secuencias de control de cadenas se definen por la aplicación o disciplina de privacidad. Estas funciones rara vez se implementan y los argumentos son ignorados por xterm. Algunos clientes de Kermit permiten que el servidor ejecute automáticamente comandos de Kermit en el cliente incrustándolos en secuencias APC; este es un riesgo potencial de seguridad si el servidor no está conectado.
ESC ^0x9EPMMensaje de privacidad
ESC _0x9FAPCApplication Program Command

Secuencias CSI (introductor de secuencia de control)

Para los comandos del Introductor de secuencia de control, o CSI, el ESC [ (escrito como e[ o 33[ en varios lenguajes de programación y secuencias de comandos) va seguido de cualquier número (incluido ninguno) de "bytes de parámetro" en el rango 0x30–0x3F (ASCII 0–9:;<=>?), luego por cualquier número de "bytes intermedios" en el rango 0x20–0x2F (espacio ASCII y !" #$%&'()*+,-./), y finalmente por un único "byte final" en el rango 0x40–0x7E (ASCII @A–Z[]^_`a–z{|}~).

Todas las secuencias comunes solo usan los parámetros como una serie de números separados por punto y coma, como 1;2;3. Los números que faltan se tratan como 0 (1;;3 actúa como si el número del medio fuera 0, y ningún parámetro en ESC[m actúa como un 0 código de reinicio). Algunas secuencias (como CUU) tratan 0 como 1 para que los parámetros faltantes sean útiles.

Un subconjunto de arreglos fue declarado "privado" para que los fabricantes de terminales pudieran insertar sus propias secuencias sin entrar en conflicto con el estándar. Las secuencias que contienen los bytes de parámetro <=>? o los bytes finales 0x70–0x7E (p–z{|}~) son privadas.

El comportamiento del terminal no está definido en el caso de que una secuencia CSI contenga cualquier carácter fuera del rango 0x20–0x7E. Estos caracteres ilegales son caracteres de control C0 (el rango 0–0x1F), DEL (0x7F) o bytes con el conjunto de bits alto. Las posibles respuestas son ignorar el byte, procesarlo de inmediato y, además, continuar con la secuencia CSI, abortarla de inmediato o ignorar el resto.

Algunas secuencias de control ANSI (no una lista exhaustiva)
CódigoAbbrNombreEfecto
CSI n A CUUCursor Up Mueva el cursor n (default) 1) células en la dirección dada. Si el cursor ya está al borde de la pantalla, esto no tiene efecto.
CSI n B CUDCursor Down
CSI n C CUFCursor Forward
CSI n D CUBCursor Back
CSI n E CNLCursor Next Line Mueva el cursor al comienzo de la línea n (default) 1Las líneas abajo. (no ANSI.SYS)
CSI n F CPLCursor Línea anterior Mueva el cursor al comienzo de la línea n (default) 1En fila. (no ANSI.SYS)
CSI n G CHACursor Absoluto HorizontalMueva el cursor a la columna n (default) 1). (no ANSI.SYS)
CSIn;mH CUPPosición del cursor Mueva el cursor a fila n, columna m. Los valores están basados en 1 y por defecto 1 Si se omite. Una secuencia como CSI;5H es un sinónimo CSI 1;5H así como CSI 17;H es lo mismo que CSI 17H y CSI 17;1H
CSI n J EDBorrar en pantalla Limpia parte de la pantalla. Si n es 0 (o falta), claro desde el cursor hasta el final de la pantalla. Si n es 1, claro desde el cursor hasta el comienzo de la pantalla. Si n es 2, pantalla completa clara (y mueve cursor a la izquierda superior en DOS ANSI.SYS). Si n es 3, pantalla completa clara y eliminar todas las líneas guardadas en el búfer de desplazamiento (esta característica fue agregada para xterm y es compatible con otras aplicaciones terminales).
CSI n K ELBorrar la línea Borra parte de la línea. Si n es 0 (o falta), claro desde el cursor hasta el final de la línea. Si n es 1, claro desde el cursor hasta el comienzo de la línea. Si n es 2, clara línea completa. La posición del cursor no cambia.
CSI n S Seguro.Scroll Up Desplazar toda la página por n (default) 1Líneas. Se añaden nuevas líneas en la parte inferior. (no ANSI.SYS)
CSI n T SDAbajo. Desplazar toda la página abajo n (default) 1Líneas. Se añaden nuevas líneas en la parte superior. (no ANSI.SYS)
CSI n; m f HVPPosición vertical horizontalIgual que CUP, pero cuenta como una función de efector de formato (como CR o LF) en lugar de una función de editor (como CUD o CNL). Esto puede llevar a un manejo diferente en ciertos modos terminales.
CSI n m SGRSelect Graphic Rendition Establece colores y estilo de los personajes siguiendo este código
CSI 5i Puerto AUX en Permitir aux puerto serie generalmente para la impresora serial local
CSI 4i AUX Puerto Off Desactivar el puerto serie aux generalmente para la impresora serial local

CSI 6n DSRInforme sobre el estado de los dispositivos Informa la posición del cursor (CPR) por transmisión ESC[n;mR, donde n es la fila y m es la columna.
Algunas secuencias privadas populares
CódigoAbbrNombreEfecto
CSI s SCP, SCOSCGuardar la posición actual del cursor Guarda la posición del cursor/estado en modo consola SCO. En modo de pantalla dividida vertical, en lugar de fijar (como CSI n; n s) o restablecer los márgenes izquierdo y derecho.
CSI u RCP, SCORCRestaurar la posición del cursor guardadoRestaura la posición del cursor/estado en modo consola SCO.
CSI? 25 h DECTCEMMuestra el cursor, del VT220.
CSI? 25 l DECTCEMOculta el cursor.
¿CSI? 1004 h Activar el enfoque de presentación de informes. Los informes cuando el emulador terminal entra o sale se centran como ESC [I y ESC [O, respectivamente.
¿CSI? 1004 l Desactivar el enfoque de presentación de informes.
¿CSI? 1049 h Activar el búfer de pantalla alternativa, desde xterm
¿CSI? 1049 l Desactivar el búfer de pantalla alternativa, desde xterm
¿CSI? 2004 h Activa el modo de pasta entre corchetes. En modo de pasta entre corchetes, el texto pegado al terminal estará rodeado por ESC [200~ y ESC [201~; los programas que se ejecutan en el terminal no deben tratar caracteres entre corchetes por esas secuencias como comandos (Vim, por ejemplo, no los trata como comandos). De xterm
¿CSI? 2004 l Apaga el modo de pasta entre corchetes.

Parámetros SGR (Seleccionar Representación Gráfica)

La secuencia de control CSI n m, llamada Select Graphic Rendition (SGR), establece los atributos de visualización. Se pueden establecer varios atributos en la misma secuencia, separados por punto y coma. Cada atributo de visualización permanece en vigor hasta que una siguiente aparición de SGR lo restablece. Si no se proporcionan códigos, CSI m se trata como CSI 0 m (restablecer/normal).

nNombreNota
0Reset o normal Todos los atributos apagados
1Intensidad audaz o mayor Como con débil, el cambio de color es una invención PC (SCO / CGA).
2Faint, disminución de la intensidad, o dim Puede ser implementado como un peso de fuente ligera como bold.
3Italic No es ampliamente apoyado. A veces se trata como inverso o parpadea.
4Subsidio Las extensiones de estilo existen para Kitty, VTE, mintty y iTerm2.
5Pasillo lento Sets parpadeando a menos de 150 veces por minuto
6Enlace rápido MS-DOS ANSI. SYS, 150+ por minuto; no ampliamente apoyado
7vídeo inverso o invertidos Swap foreground y colores de fondo; emulación inconsistente
8Conceal o escondido No es ampliamente apoyado.
9Cruzado, o huelga Personajes legibles pero marcados como para la eliminación. No compatible con Terminal.app
10Fuente primaria (por defecto)
11 a 19Fuente alternativa Seleccionar fuente alternativa n 10 - 10
20Fraktur (Gothic) Respaldado
21Doubly highlighted; or: not bold Doble-entendido por ECMA-48, pero en cambio desactiva la intensidad audaz en varios terminales, incluso en la consola del kernel de Linux antes de la versión 4.17.
22Intensidad normal Ni audaz ni débil; cambios de color donde la intensidad se implementa como tal.
23Ni italic, ni blackletter
24No subrayado Ni cantadas ni doblemente subrayadas
25No parpadear Apaga el parpadeo
26Espaciamiento proporcional UIT T.61 y T.416, no conocidos por ser utilizados en terminales
27No se revierte
28Reveal No ocultado
29No se ha cruzado
30-37Establecer color de primer plano
38Establecer color de primer plano Los siguientes argumentos son 5;n o 2;r;g;b
39Color predeterminado Aplicación definida (según norma)
40–47Color de fondo
48Color de fondo Los siguientes argumentos son 5;n o 2;r;g;b
49Color de fondo predeterminado Aplicación definida (según norma)
50Espaciamiento proporcional deficiente T.61 y T.416
51Framed Se implementó como "emoji selector de variación" en menta.
52Alrededores
53Overlined No compatible con Terminal.app
54Ni enmarcado ni rodeado
55No está sobrelineado
58Conjunto de color bajo línea No en estándar; implementado en Kitty, VTE, mintty, e iTerm2. Los siguientes argumentos son 5;n o 2;r;g;b.
59Color bajo línea predeterminado No en estándar; implementado en Kitty, VTE, mintty, e iTerm2.
60Ideograma bajo línea o línea lateral derecha Respaldado
61Ideogram doble subrayado, o doble línea en el lado derecho
62Línea superior o línea lateral izquierda
63Ideograma doble sobrelínea, o doble línea en el lado izquierdo
64Marca de estrés de Ideograma
65No atributos de ideograma Restablecer los efectos de todos los 6064
73Superscript Aplicada sólo en mintty
74Subscript
75Ni superscript ni subscript
90–97Color de primer plano brillante No en estándar; originalmente implementado por aixterm
100–107Color de fondo brillante

Colores

3 bits y 4 bits

La especificación original solo tenía 8 colores y solo les daba nombres. Los parámetros SGR 30–37 seleccionaron el color de primer plano, mientras que 40–47 seleccionaron el fondo. Bastantes terminales implementaron "negrita" (código SGR 1) como un color más brillante en lugar de una fuente diferente, proporcionando así 8 colores de primer plano adicionales. Por lo general, no podría obtener estos como colores de fondo, aunque a veces el video inverso (código SGR 7) lo permitiría. Ejemplos: para obtener letras negras sobre fondo blanco, use ESC[30;47m , para obtener rojo use ESC[31m, para obtener un color rojo brillante, use ESC[1;31m. Para restablecer los colores a sus valores predeterminados, use ESC[39;49m (no compatible con algunos terminales), o restablecer todos los atributos con ESC[0m. Los terminales posteriores agregaron la capacidad de especificar directamente el "brillante" colores con 90–97 y 100–107.

Cuando el hardware comenzó a utilizar convertidores de digital a analógico (DAC) de 8 bits, varias piezas de software asignaron números de color de 24 bits a estos nombres. La siguiente tabla muestra los valores predeterminados enviados al DAC para algunos hardware y software comunes; en la mayoría de los casos son configurables.

FGBGNombre VGA Windows XPConsole WindowsPower Shell 6 Visual Studio Code Windows 10Console Terminal.app PuTTY mIRC xterm Ubuntu Terminal de Eclipse
3040Negro 0, 0, 0 12, 12, 12 0, 0, 0 1, 1, 1 0, 0, 0
3141Rojo 170, 0, 0 128, 0, 0 205, 49, 49 197, 15, 31 194, 54, 33 187, 0, 0 127, 0, 0 205, 0, 0 222, 56, 43 205, 0, 0
3242Verde 0, 170, 0 0, 128, 0 13, 188, 121 19, 161, 14 37, 188, 36 0, 187, 0 0, 147, 0 0, 205, 0 57, 181, 74 0, 205, 0
3343Amarillo 170, 85, 0 128, 128, 0 238, 237, 240 229, 229, 16 193, 156, 0 173, 173, 39 187, 187, 0 252, 127, 0 205, 205, 0 255, 199, 6 205, 205, 0
3444Azul 0, 0, 170 0, 0, 128 36, 114, 200 0, 55, 218 73, 46, 225 0, 0, 187 0, 0, 127 0, 0, 238 0, 111, 184 0, 0, 238
3545Magenta 170, 0, 170 128, 0, 128 1, 36, 86 188, 63, 188 136, 23, 152 211, 56, 211 187, 0, 187 156, 0, 156 205, 0, 205 118, 38, 113 205, 0, 205
3646Cyan 0, 170, 170 0, 128, 128 17, 168, 205 58, 150, 221 51, 187, 200 0, 187, 187 0, 147, 147 0, 205, 205 44, 181, 233 205, 0, 205
3747Blanco 170, 170, 170 192, 192, 192 229, 229, 229 204, 204, 204 203, 204, 205 187, 187, 187 210, 210, 210 229, 229, 229 204, 204, 204 229, 229, 229
90100Negro brillante (Gray)85, 85, 85 128, 128, 128 102, 102, 102 118, 118, 118 129, 131, 131 85, 85, 85 127, 127, 127 127, 127, 127 128, 128, 128 0, 0, 0
91101Rojo brillante 255, 85, 85 255, 0, 0 241, 76, 76 231, 72, 86 252, 57, 31 255, 85, 85 255, 0, 0
92102Verde brillante 85, 255, 85 0, 255, 0 35, 209, 139 22, 198, 12 49, 231, 34 85, 255, 85 0, 252, 0 0, 255, 0
93103Amarillo brillante 255, 255, 85 255, 255, 0 245, 245, 67 249, 241, 165 234, 236, 35 255, 255, 85 255, 255, 0
94104Azul brillante 85, 85, 255 0, 0, 255 59, 142, 234 59, 120, 255 88, 51, 255 85, 85, 255 0, 0, 252 92, 92, 255 0, 0, 255 92, 92, 255
95105Bright Magenta 255, 85, 255 255, 0, 255 214, 112, 214 180, 0, 158 249, 53, 248 255, 85, 255 255, 0, 255
96106Bright Cyan 85, 255, 255 0, 255, 255 41, 184, 219 97, 214, 214 20, 240, 240 85, 255, 255 0, 255, 255
97107Blanco brillante 255, 255, 255 229, 229, 229242, 242, 242 233, 235, 235 255, 255, 255
8 bits

A medida que las tablas de búsqueda de 256 colores se volvieron comunes en las tarjetas gráficas, se agregaron secuencias de escape para seleccionar de un conjunto predefinido de 256 colores:

ESC[38;5; Seleccione el color del primer plano donde n es un número de la tabla abajo
ESC[48;5; Seleccione color de fondo
0- 7: colores estándar (como en ESC [ 30–37 m)
8- 15: colores de alta intensidad (como en ESC [ 90-97 m)
16-231: 6 × 6 × 6 cubo (216 colores): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
232-255: grayscale de la oscuridad a la luz en 24 pasos

La tecnología de la información T.416 de la UIT - Arquitectura de documento abierto (ODA) y formato de intercambio: las arquitecturas de contenido de caracteres utilizan ":" como caracteres separadores en su lugar:

ESC[38:5: Seleccione el color del primer plano donde n es un número de la tabla abajo
ESC[48:5: Seleccione color de fondo

Modo 256-color - primer plano: ESC[38;5; fondo#m: ESC[48;5;#m
Colores estándar Colores de alta intensidad
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
216 colores
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
Colores grises
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

También ha habido una codificación de 88 colores similar pero incompatible usando la misma secuencia de escape, vista en rxvt y xterm -88color. No se sabe mucho sobre el esquema además de los códigos de color. Utiliza un cubo de color de 4×4×4.

24 bits

Como "color verdadero" Las tarjetas gráficas con 16 a 24 bits de color se hicieron comunes, las aplicaciones comenzaron a admitir colores de 24 bits. Los emuladores de terminal que admiten la configuración de colores de primer plano y de fondo de 24 bits con secuencias de escape incluyen Xterm, Konsole de KDE e iTerm, así como todos los terminales basados en libvte, incluido GNOME Terminal.

ESC[ 38;2; cosechar caminos; pedazos;
ESC[ 48;2; cosechar caminos; pedazog);

Es probable que la sintaxis se base en la arquitectura abierta de documentos (ODA) T.416 de la UIT y el formato de intercambio: arquitecturas de contenido de caracteres, que se adoptó como ISO/IEC 8613-6 pero terminó como un fracaso comercial. La versión ODA es más elaborada y, por lo tanto, incompatible:

  • Los parámetros después del '2' (r, g, y b) son opcionales y se pueden dejar vacíos.
  • Semicolons son reemplazados por colones, como arriba.
  • Hay un "idente colorespacial" líder. La definición del ID colorspace no está incluida en ese documento, por lo que puede estar en blanco para representar el defecto no especificado.
  • Además del valor '2' después de 48 para especificar un formato Red-Green-Blue (y el '5' arriba para un color indexado 0-255), hay alternativas de '0' para la implementación definida y '1' para transparente - ninguno de los cuales tienen otros parámetros marcados; '3' especifica los colores utilizando un esquema Cyan-Magenta-Yellow, y '4' para un componente Cyan-Magenta-Y
ESC[ 38:2: "Color-Space-ID." Color-Espacio asociado con tolerancia: 0 para "CIELUV"; 1 para "CIELAB" m Seleccione el color de primer plano RGB
ESC[ 48:2: "Color-Space-ID." Color-Espacio asociado con tolerancia: 0 para "CIELUV"; 1 para "CIELAB" m Seleccione el color de fondo RGB

La variación ITU-RGB es compatible con xterm, con la identificación del espacio de color y los parámetros de tolerancia ignorados. El esquema más simple que usa punto y coma se encuentra inicialmente en Konsole.

Variables de entorno de Unix relacionadas con la compatibilidad con el color

Antes de que termcap y terminfo pudieran indicar soporte para colores, la biblioteca S-Lang usaba $COLORTERM para indicar si un emulador de terminal podría usar colores (luego reinterpretado como 256 colores) y si admite color de 24 bits. Este sistema, aunque mal documentado, se generalizó lo suficiente como para que Fedora y RHEL consideraran usarlo como un mecanismo de detección más simple y universal en comparación con consultar las bibliotecas ahora actualizadas. Sin embargo, gnome-terminal 3.14 eliminó esta variable porque sus autores la consideraron incorrecta y ya no necesaria.

Algunos emuladores de terminal (urxvt, konsole) configuran $COLORFGBG para informar sobre el esquema de color del terminal (principalmente fondo claro versus fondo oscuro). Este comportamiento se originó en S-Lang y lo utiliza vim. Nuevamente, gnome-terminal se niega a agregar este comportamiento, ya que es más "adecuado" Las secuencias xterm OSC 4/10/11 ya existen.

Secuencias OSC (Operating System Command)

Xterm definió la mayoría de las secuencias de comandos del sistema operativo, pero muchas también son compatibles con otros emuladores de terminal. Por razones históricas, Xterm puede terminar el comando con BEL así como con el estándar ST. Por ejemplo, Xterm permite que el título de la ventana se establezca mediante ESC ]0;este es el título de la ventana BEL.

Una extensión que no es xterm es el hipervínculo, ESC ]8;;enlace ST de 2017, utilizado por VTE, iTerm2 y mintty.

La consola Linux usa ESC ] P n rr gg bb para cambiar la paleta, que, si está codificada en una aplicación, puede bloquear otros terminales. Sin embargo, Linux ignorará la adición de ST y formará una secuencia adecuada e ignorable para otros terminales.

Fs Secuencias de escape

Si ESC va seguido de un byte en el rango 0x60—0x7E, la secuencia de escape es del tipo Fs. Este tipo se utiliza para funciones de control registradas individualmente con el registro ISO-IR y, en consecuencia, disponible incluso en contextos donde se utiliza un conjunto de códigos de control C1 diferente. Específicamente, corresponden a funciones de control únicas aprobadas por ISO/IEC JTC 1/SC 2 y estandarizadas por ISO o un organismo reconocido por ISO. Algunos de estos se especifican en ECMA-35 (ISO 2022 / ANSI X3.41), otros en ECMA-48 (ISO 6429 / ANSI X3.64). ECMA-48 se refiere a estos como "funciones de control independientes".

Tipo Fs (función independiente) secuencias de escape ANSI reconocidas por terminales (no una lista exhaustiva)
AbbrNombreEfecto
ESC cRISReset to Initial StateProvoca un restablecimiento completo de la terminal a su estado original. Esto puede incluir (si es aplicable): reiniciar la entrega gráfica, paradas de tabulación claras, restablecer a la fuente predeterminada, y más.

Fp Secuencias de escape

Si ESC va seguido de un byte en el rango 0x30—0x3F, la secuencia de escape es de tipo Fp, que se reserva para hasta dieciséis funciones de control de uso privado.

Tipo Fp (uso privado) secuencias de escape reconocidas por el VT100, sus sucesores y/o emuladores terminales como xterm
AbbrNombreEfecto
ESC 7DECSCDEC Guardar cursor Ahorra la posición del cursor, codificando los atributos de estado de cambio y formato.
ESC 8DECRCDEC Restore CursorRestaura la posición del cursor, el estado de cambio de codificación y los atributos de formato de la DECSC anterior si los hay, de lo contrario reasienta todos a sus predeterminados.

Secuencias de escape NF

Si ESC va seguido de un byte en el rango 0x20—0x2F, la secuencia de escape es de tipo nF. Dicho byte es seguido por cualquier cantidad de bytes adicionales en este rango, y luego un byte en el rango 0x30-0x7E. Estas secuencias de escape se subcategorizan aún más por los cuatro bits inferiores del primer byte, p. "escriba 2F" para secuencias donde el primer byte es 0x22; y si el byte final está en el rango 0x30—0x3F que indica un uso privado (por ejemplo, "escriba 2Fp") o no (por ejemplo, "escriba 2Ft").

Las secuencias de escape de este tipo se usan principalmente para mecanismos de cambio de código ANSI/ISO como los que usa ISO-2022-JP, excepto para el tipo 3F secuencias (aquellas donde el primer byte intermedio es 0x23), que se utilizan para funciones de control individuales. Las secuencias de tipo 3Ft están reservadas para ISO-IR adicionales registrados funciones de control individuales, mientras que las secuencias de tipo 3Fp están disponibles para funciones de control de uso privado. A diferencia de las secuencias de tipo Fs, ningún tipo 3Ft están actualmente registradas.

Tipo 0Ft secuencias de escape ANSI reconocidas por terminales
AbbrNombreEfecto
ESC SP F
  • ACS6
  • S7C1T
  • Announce Code Structure 6
  • Enviar 7 bits C1 Control Personaje al host
Definido en ECMA-35 (ANSI X3.41 / ISO 2022). Hace que las teclas de función envíen ESC + letra en lugar de 8 bits C1 códigos.
ESC SP G
  • ACS7
  • S8C1T
  • Announce Code Structure 7
  • Enviar 8 bits C1 Control Personaje al host
Definido en ECMA-35. Hace que las teclas de función envíen códigos C1 de 8 bits.
Tipo 3Fp (uso privado) secuencias de escape reconocidas por el VT100, sus sucesores y/o emuladores terminales como xterm
AbbrNombreEfecto
ESC # 3DECDHLDEC Cartas de doble altura, la mitad superior Hace que la línea actual use caracteres dos veces más alto. Este código es para la mitad superior.
ESC # 4DECDHLDEC Cartas de doble altura, mitad inferiorHace que la línea actual use caracteres dos veces más alto. Este código es para la mitad inferior.
ESC # 5DECSWLDEC Línea de una mujer Hace que la línea actual use caracteres de un solo ancho, por el comportamiento predeterminado.
ESC # 6DECDWLDEC Línea de doble anchoHace que la línea actual use caracteres de doble ancho, descartando cualquier personaje en la segunda mitad de la línea.

Ejemplos

CSI 2 J — Esto borra la pantalla y, en algunos dispositivos, ubica el cursor en la posición y,x 1,1 (esquina superior izquierda).

CSI 32 m — Esto hace que el texto sea verde. El verde puede ser un verde oscuro y apagado, por lo que es posible que desee habilitar Negrita con la secuencia CSI 1 m que lo haría verde brillante, o combinado como CSI 32; 1 m. Algunas implementaciones usan el estado Negrita para hacer que el carácter sea Brillante.

CSI 0; 6 8; "DIR"; 13 p — Esto reasigna la tecla F10 para enviar al búfer del teclado la cadena "DIR" y ENTER, que en la línea de comandos de DOS mostraría el contenido del directorio actual. (Solo MS-DOS ANSI.SYS) A veces se usaba para bombas ANSI. Este es un código de uso privado (como lo indica la letra p), que usa una extensión no estándar para incluir un parámetro con valor de cadena. Seguir la letra del estándar consideraría que la secuencia termina en la letra D.

CSI s — Esto guarda la posición del cursor. Usando la secuencia CSI u lo restaurará a la posición. Digamos que la posición actual del cursor es 7(y) y 10(x). La secuencia CSI s guardará esos dos números. Ahora puede moverse a una posición de cursor diferente, como 20(y) y 3(x), usando la secuencia CSI 20; 3 H o CSI 20; 3 f. Ahora, si usa la secuencia CSI u, la posición del cursor volverá a 7 (y) y 10 (x). Algunas terminales requieren las secuencias DEC ESC 7 / ESC 8 en su lugar, que es más compatible.

Secuencias de comandos de shell

Los códigos de escape ANSI se utilizan a menudo en terminales UNIX y similares a UNIX para resaltar la sintaxis. Por ejemplo, en terminales compatibles, el siguiente comando list codifica con colores los nombres de archivos y directorios por tipo.

ls --color

Los usuarios pueden emplear códigos de escape en sus scripts incluyéndolos como parte de la salida estándar o error estándar. Por ejemplo, el siguiente comando GNU sed embellece la salida del comando make al mostrar líneas que contienen palabras que comienzan con "WARN" en video inverso y palabras que comienzan con "ERR" en amarillo brillante sobre un fondo rojo oscuro (se ignoran las mayúsculas y minúsculas). Las representaciones de los códigos están resaltadas.

hacer 2 contactos1 Silencioso -e 's/.*bWARN.*/x1b[7m"x1b[0m/i' -e 's/.*bERR.*/x1b[93;41m"x1b[0m/i '

La siguiente función Bash hace parpadear el terminal (enviando alternativamente códigos de modo de video inverso y normal) hasta que el usuario presiona una tecla.

flasher () { while true; do printf ¿Qué? 5h; sleep 0.1; printf ¿Qué? 5l; read -s -n1 -t1 && break; done; }

Esto se puede usar para alertar a un programador cuando termina un comando largo, como con hacer; flasher.

printf \033c

Esto reiniciará la consola, similar al comando reset en sistemas Linux modernos; sin embargo, debería funcionar incluso en sistemas Linux más antiguos y en otras variantes de UNIX (no Linux).

En C

Output of example program on Gnome Terminal
#include Identificado.hint principal()vacío){} int i, j, n; para ()i = 0; i . 11; i++) {} para ()j = 0; j . 10; j++) {} n = 10 * i + j; si ()n  108) descanso; printf()"33[%dm%3d33[m], n, n); } printf()"n"); } retorno 0;}

Secuencias de entrada de terminales

Al presionar teclas especiales en el teclado, además de generar muchas secuencias xterm CSI, DCS u OSC, a menudo se produce una secuencia CSI, DCS u OSC, que se envía desde la terminal a la computadora como si el usuario la hubiera escrito.

Al escribir una entrada en un terminal, las pulsaciones de teclas fuera del área normal del teclado alfanumérico principal se pueden enviar al host como secuencias ANSI. Para las teclas que tienen una función de salida equivalente, como las teclas de cursor, a menudo reflejan las secuencias de salida. Sin embargo, para la mayoría de las pulsaciones de teclas no hay una secuencia de salida equivalente para usar.

Existen varios esquemas de codificación y, lamentablemente, la mayoría de los terminales mezclan secuencias de diferentes esquemas, por lo que el software host debe poder manejar las secuencias de entrada utilizando cualquier esquema. Para complicar el asunto, los propios terminales VT tienen dos esquemas de entrada, modo normal y modo de aplicación que pueden ser cambiados por la aplicación.

(sección borrador)

Identificar confianza char
Identificado por el título esc
- No. esc
> > Alt-keypress o secuencia de código clave
"[']" Alt-[
"['" (según el título) secuencia de código clave, <modifier ratio es un número decimal y predeterminados a 1 (xterm)
"['" (Secuencia de código claves claves, ") "~" - secuencia de códigos clave, "Código de claves claves claves" y "Nombres especificados" son números decimales y por defecto a 1 (vt)

Si el carácter de terminación es '~', el primer número debe estar presente y es un número de código clave, el segundo número es un valor modificador opcional. Si la terminación carácter es una letra, la letra es el valor del código clave y el número opcional es el valor del modificador.

El valor predeterminado del modificador es 1, y después de restar 1 es un mapa de bits del modificador teclas que se presionan: Meta+Ctrl+Alt +⇧ Shift. Entonces, por ejemplo, <esc>[4;2~ es ⇧ Mayús+Fin, <esc>[20~ es tecla de función F9, <esc>[5C es Ctrl+ .

En otras palabras, el modificador es la suma de los siguientes números:

Key pressed Número Comentario
1 siempre añadido, el resto es opcional
Cambio 1
(Left) Alt 2
Control 4
Meta 8
secuencias vt:
Identificado [1~ - Página de inicio [16~] - [31~ - F17
[2~ - Introducir > [17~ - F6 > [32~ - F18
[3~ - Eliminar las instrucciones c] [18~ - F7]
[4~ - Finalización de las instrucciones c] [19~ - F8]
[5~ - PgUp]sc confianza[20~ - F9 - [35~ -
[6~ - PgDn [21~ - F10
[7~ - Home]
Identificado [8~ - Finalización [23~ - F11]
[24~ - F12]
[25~ - F13]
[11~ - F1]
[12~ - F2]
[13~ - F3]
[14~ - F4]
[15~ - F5]

secuencias xterm:
[A - Up - Up - [K - ]
[B - Abajo]
[C - Derecho]
[D - Izquierda]
[E - iereesc]
[F - Finales]c confianza[1P - F1]
[G - Keypad 5](1Q - F2
[H - Home]sc confianza[1R - F3
[1S - F4]
[T]

<esc>[A a <esc>[D] son las mismas que las secuencias de salida ANSI. El <modifier> normalmente se omite si no se presiona ninguna tecla modificadora, pero la mayoría de las implementaciones siempre emiten el <modifier> para F1F4. (borrador de sección)

Xterm tiene una página de documentación completa sobre los diversos esquemas de secuencia de entrada de mouse y teclas de función de los terminales VT de DEC y varios otros terminales que emula. Thomas Dickey le ha agregado mucho apoyo a lo largo del tiempo; también mantiene una lista de claves predeterminadas utilizadas por otros emuladores de terminal para comparar.

  • En la consola Linux, ciertas teclas de función generan secuencias del formulario CSI [ char. La secuencia CSI debe terminar en [.
  • Versiones antiguas de Terminator generan SS3 1; modifiers char cuando F1F4 son presionados con modificadores. El comportamiento defectuoso fue copiado de GNOME Terminal.
  • respuestas por períodos CSI row; column R si se solicita la posición del cursor y CSI 1; modifiers R si F3 llave se presiona con modificadores, que collide en el caso de row == 1. Esto se puede evitar utilizando el ? modificador privado como CSI ? 6 n, que se reflejará en la respuesta CSI ? row; column R.
  • muchos terminales prependiendo ESC a cualquier personaje que se escribe con la tecla Alt abajo. Esto crea ambigüedad para letras mayúsculas y símbolos @[]^_, que formaría códigos C1.
  • Konsole genera SS3 modifiers char cuando F1F4 son presionados con modificadores.

Contenido relacionado

Prefijo binario

Un prefijo binario es un prefijo de unidad para múltiplos de unidades. Se usa con más frecuencia en el procesamiento de datos, la transmisión de datos y la...

Lenguaje formal

En lógica, matemáticas, informática y lingüística, un lenguaje formal consta de palabras cuyas letras se toman de un alfabeto y están bien formadas de...

ETag HTTP

La ETag o etiqueta de entidad es parte de HTTP, el protocolo para la World Wide Web. Es uno de varios mecanismos que proporciona HTTP para la validación de...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save