Código de escape ANSI


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 terminal . Ciertas secuencias de bytes , la mayoría que comienzan 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 raros en el siglo XXI, la relevancia del estándar ANSI persiste porque una gran mayoría de emuladores de terminal y consolas de comando interpretan al menos una parte del estándar ANSI.

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 permitió colocar el cursor en una ubicación x, y en la pantalla enviando el ESCcarácter, un Ycarácter y luego dos caracteres que representan con valores numéricos iguales a la ubicación x, y más 32 (por lo tanto comenzando en el carácter de espacio ASCII y evitando los caracteres de control). El Hazeltine 1500 tenía una característica similar, invocada usando ~, DC1y luego las posiciones X e Y separadas con una coma. Si bien los dos terminales tenían una funcionalidad idéntica a este respecto, se tuvieron que utilizar 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, muchos de estos terminales requerían el envío de números (como filas y columnas) como 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 transmita como números ASCII. El primer estándar de la serie fue ECMA-48, adoptado en 1976. [1] 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 a partir del cual 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. [1] En 1994, ANSI retiró su estándar a favor del estándar internacional.


Terminal DEC VT100
El terminal de visualización de video DEC VT100.
Emulador de terminal Xterm
El emulador de terminal Xterm.