# include " rang.hpp "
using namespace std ;
using namespace rang ;
int main ()
{
cout << " Plain old text "
<< style:: bold << " Rang styled text!! "
<< style::reset << endl;
}
rang solo depende de la biblioteca estándar de C++, el encabezado del sistema unistd.h
en Unix y los encabezados del sistema windows.h
& io.h
en sistemas basados en Windows. En otras palabras, no necesita dependencias de terceros.
rang es una biblioteca de solo encabezado. Coloque rang.hpp
en la carpeta de inclusión directamente en el árbol de fuentes del proyecto o en algún lugar accesible desde su proyecto.
O, si utiliza el administrador de paquetes de Conan, siga estos pasos:
Agregue una referencia para sonar a la sección de requisitos del archivo conanfile.txt
de su proyecto:
[requires]
rang/3.1.0@rang/stable
Ejecute el comando de instalación de Conan:
conan install
Rang usa objetos iostream: cout
/ clog
/ cerr
para aplicar atributos al texto de salida. Dado que rang tiene como objetivo admitir sistemas tipo Windows y Unix, se ocupa de los detalles específicos del sistema operativo e intenta proporcionar una interfaz uniforme. Debido a incompatibilidades entre diferentes versiones del sistema operativo, no todos los tipos de atributos son compatibles con todos los sistemas, por lo que rang intentará omitir aquellos que puedan producir basura (en lugar de insertar códigos de escape ANSI aleatorios en sus transmisiones). La detección de tty también se maneja internamente, por lo que no es necesario verificar si el usuario de la aplicación puede redirigir la salida a un archivo.
¿Necesita soporte para terminales que no sean ansi? Consulte Termdb, que admite prácticamente todos los terminales y sus capacidades.
Además de configurar los atributos de texto, también puedes pedirle a rang que anule su comportamiento predeterminado a través de estos métodos:
void rang::setControlMode (rang::control);
donde rang::control
control::Auto
- Detecta automáticamente si el terminal admite color o no ( predeterminado )control::Off
- Desactiva los colores por completocontrol::Force
- Fuerza los colores incluso si el terminal no los admite o la salida se redirige a un no terminal void rang::setWinTermMode (rang::winTerm);
donde rang::winTerm
toma
winTerm::Auto
: busca ventanas más nuevas y selecciona Ansi, de lo contrario vuelve a Nativo ( predeterminado )winTerm::Native
: este método es compatible con todas las versiones de Windows, pero admite menos atributos.winTerm::Ansi
: este método es compatible con las versiones más recientes de Windows y admite una gran variedad de atributos.Los atributos admitidos con su compatibilidad se enumeran a continuación:
Estilos de texto :
Código | Linux/Win/Otros | antigua victoria |
---|---|---|
rang::style::bold | Sí | Sí |
rang::style::dim | Sí | No |
rang::style::italic | Sí | No |
rang::style::underline | Sí | No |
rang::style::blink | No | No |
rang::style::rblink | No | No |
rang::style::reversed | Sí | Sí |
rang::style::conceal | tal vez | Sí |
rang::style::crossed | Sí | No |
Color del texto :
Código | Linux/Win/Otros | antigua victoria |
---|---|---|
rang::fg::black | Sí | Sí |
rang::fg::red | Sí | Sí |
rang::fg::green | Sí | Sí |
rang::fg::yellow | Sí | Sí |
rang::fg::blue | Sí | Sí |
rang::fg::magenta | Sí | Sí |
rang::fg::cyan | Sí | Sí |
rang::fg::gray | Sí | Sí |
Color de fondo :
Código | Linux/Win/Otros | antigua victoria |
---|---|---|
rang::bg::black | Sí | Sí |
rang::bg::red | Sí | Sí |
rang::bg::green | Sí | Sí |
rang::bg::yellow | Sí | Sí |
rang::bg::blue | Sí | Sí |
rang::bg::magenta | Sí | Sí |
rang::bg::cyan | Sí | Sí |
rang::bg::gray | Sí | Sí |
Color de primer plano brillante :
Código | Linux/Win/Otros | antigua victoria |
---|---|---|
rang::fgB::black | Sí | Sí |
rang::fgB::red | Sí | Sí |
rang::fgB::green | Sí | Sí |
rang::fgB::yellow | Sí | Sí |
rang::fgB::blue | Sí | Sí |
rang::fgB::magenta | Sí | Sí |
rang::fgB::cyan | Sí | Sí |
rang::fgB::gray | Sí | Sí |
Color de fondo brillante :
Código | Linux/Win/Otros | antigua victoria |
---|---|---|
rang::bgB::black | Sí | Sí |
rang::bgB::red | Sí | Sí |
rang::bgB::green | Sí | Sí |
rang::bgB::yellow | Sí | Sí |
rang::bgB::blue | Sí | Sí |
rang::bgB::magenta | Sí | Sí |
rang::bgB::cyan | Sí | Sí |
rang::bgB::gray | Sí | Sí |
Restablecer estilos/colores :
Código | Linux/Win/Otros | antigua victoria |
---|---|---|
rang::style::reset | Sí | Sí |
rang::fg::reset | Sí | Sí |
rang::bg::reset | Sí | Sí |
Verifique el valor de su variable de entorno TERM
. Luego abra un problema aquí y asegúrese de mencionar el valor de TERM
junto con el nombre de su terminal.
cout
/ cerr
/ clog
rdbuf? Rang no interfiere si intenta redirigir cout
/ cerr
/ clog
a otro lugar y deja la decisión al usuario de la biblioteca. Asegúrate de haber leído esta conversación y consulta el código de ejemplo aquí.