Digital Ocean es la plataforma que uso para hostear la mayoría de mis proyectos, incluido este blog, por lo que puedo recomendártelo sinceramente, usar este enlace no generará un costo extra sobre ti, me ayuda a mantener bajos los costos del blog y tú obtendrás $200 USD en crédito, válidos por 2 meses (60 días)
Índice del contenido
Conoce bat en linux, el cat con resaltado de sintaxis
Conoce bat en linux, el cat con resaltado de sintaxis
El otro día estaba buscando herramientas de resaltado de sintaxis y me topé con una herramienta bastante interesante llamada bat (Sí, como murciélago en inglés), es básicamente el comando cat de linux, pero con colores y otras funciones bastante interesantes. Y, como cereza del pastel, está programado en Rust. En esta entrada te explico de forma corta como funciona y que es lo que puede hacer por ti.
Instalar bat desde los repositorios en linux
Puedes instalarlo directo desde los repositorios en las versiones más nuevas de Debian o sistemas derivados (Ubuntu).
sudo apt install bat
Como mi versión de Debian no es la más reciente tuve que instalarlo desde su version de paquete de software con terminacion .deb . Recuerda que si tienes problemas con los comandos de GNU/Linux entra a leer mis entradas donde te hago un resumen de los comandos más básicos de GNU Linux
wget https://github.com/sharkdp/bat/releases/download/v0.15.4/bat-musl_0.15.4_amd64.deb
dpkg -i bat-musl_0.15.4_amd64.deb
¿Para qué sirve bat?
Bat nos va a mostrar el contenido de un archivo, justo como cat, pero con la sintaxis resaltada para la mayoría de los lenguajes de programación:
Cat, la herramienta predeterminada nos muestra el archivo que le indiquemos pero en un solo color.
cat index.js
import React from "react"
import ReactDOM from "react-dom"
import App from "./App"
ReactDOM.render(<App/>, document.getElementById('root'))
Si ahora usamos bat veremos la sintaxis del lenguaje resaltada y los números de linea en la salida estándar:
bat index.js
//File: index.js
import React from "react"
import ReactDOM from "react-dom"
import App from "./App"
ReactDOM.render(<App/>, document.getElementById('root'))
Puede resaltar los tabuladores, los espacios y los saltos de linea usando la opción -A
bat -A index.css
/*index.css*/
body{␊
••margin: 0;␊
••background-color: whitesmoke;␊
••font-family: Lolita;␊
••font-color: #bbb;␊
}␊
␊
.checkBoxes{␊
••font-size: 20px;␊
••padding: 10px;␊
}
Bat tiene muchos temas disponibles
Bat tiene temas para todos los gustos, hippies, sobrios, formales, psicodélicos, etc. Usa --list-themes para verlos.
bat --list-themes
...
Theme: Monokai Extended
// Output the square of a number.
fn print_square(num: f64) {
let result = f64::powf(num, 2.0);
println!("The square of {:.2} is {:.2}.", num, result);
}
...
Si te gusta un tema en particular puedes usarlo de manera temporal para visualizar un archivo usando la opción --theme
bat --theme='Monokai Extended' index.css
Para cargarlo permanentemente debes agregarlo a tu archivo .bash_rc
# ~/.bashrc
...
export BAT_THEME="Monokai Extended"
...
Bat viene con un paginador automático
Esto significa que si el archivo es muy grande, no lo mostrará completo, sino que mostrará una parte y podremos ir avanzando por el contenido con las flechas en nuestro teclado. El paginador que usa por defecto es less.
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile --output-file requirements.txt requirements.in
#
amqp==2.2.2
asn1crypto==0.24.0
attrs==17.4.0
Babel==2.5.3
BabelDjango==0.2.2
:
Bat tiene integración con git
Bat se integra con git y te muestra los horribles bugs cambios que has implementado en tu código. Agrega un símbolo + para lineas añadidas y un ~ para lineas modificadas.
{% block content %}
<header class="navbar" role="navigation">
~ <p>Parrafo modificado</p>
+ <p>Parrafo nuevo</p>
</header>
{% endblock %}
¿Qué opinas? ¿Lo usarías? A mi me parece una herramienta bastante útil, sobre todo para entornos donde no se tiene una interfaz gráfica o si eres como yo y no te gusta esperar a que cargue el IDE.