8 hechos que hacen que el comando bat de Linux sea mejor que cat 1

8 hechos que hacen que el comando bat de Linux sea mejor que cat

Índice
  1. bat hace resaltado de sintaxis por defecto
  2. bat también numera líneas por defecto
  3. bat puede resaltar líneas o rangos
  4. bat funciona bien con git
  5. bat se comporta sensatamente si se encuentra en un pipeline
  6. bat funciona bien con man también
  7. bat tiene algunas opciones de configuración realmente útiles

Descubre bat, la herramienta que resalta sintaxis y marca diferencias en git, mejorando la visualización de archivos en terminales de Linux con opciones altamente configurables.

El programa bat se describe a sí mismo como “un clon de cat con alas”, lo cual es una analogía divertida, pero un poco engañosa. bat es una herramienta con dos propósitos principales: resaltar sintaxis y marcar diferencias en git.

Para entender exactamente cómo usar bat de la mejor manera, estos ejemplos mostrarán cómo funciona el comando y qué opciones diversas te permiten hacer.

bat hace resaltado de sintaxis por defecto

Para ilustrar la función principal de bat, simplemente ejecútalo contra un archivo de código fuente en el lenguaje que prefieras, por ejemplo:

bat tile.js

Para un archivo corto, bat enviará la salida y te devolverá a tu indicador.

Lo principal que hace bat en este caso es agregar resaltado de sintaxis a tu archivo usando colores ANSI. Puede hacer esto para muchos idiomas diferentes, cubriendo todo desde C hasta HTML y Markdown:

Para listar el conjunto completo de sintaxis de lenguajes que bat soporta, utiliza la opción --list-languages.

Puedes usar la opción --theme para cambiar los colores específicos que bat utiliza. Por ejemplo, aquí está el inicio del archivo anterior resaltado usando el tema gruvbox-dark:

Aunque bat se describe a sí mismo como un “clon de cat”, realmente no lo es. Puedes usar el comando cat de muchas maneras, pero su intención original era combinar (concatenar) archivos. cat sigue siendo la mejor herramienta para ese propósito, pero bat mejora su uso como visor de archivos.

Si un archivo es demasiado largo para caber en tu terminal, bat usará un paginador para mostrar una versión interactiva. Esto funcionará exactamente de la misma manera que el paginador que usas para ver páginas man, siempre que sea el mismo paginador. Por defecto, bat usará less, pero tienes un par de opciones para usar una alternativa:

  • Cambia la variable PAGER o usa BAT_PAGER si deseas que bat use un paginador diferente al de otro software.
  • Usa la opción --pager para especificar un comando (o ruta a un programa). Puedes hacer esto en la línea de comandos o en el archivo de configuración de bat.

Podrías encontrar confuso o distrayente que bat a veces use un paginador y a veces no. Si es así, puedes usar la opción --paging para alterar este comportamiento:

bat 

Hay varias maneras diferentes de configurar tu paginador usando bat y las opciones --paging y --pager. Consulta la documentación de bat (man bat) para más detalles.

bat también numera líneas por defecto

Por defecto, bat también muestra números de línea junto a tu archivo. Apagué esto en las capturas de pantalla anteriores para mantenerlas simples; aquí tienes un ejemplo del comportamiento real por defecto:

Los números de línea son útiles para rastrear tu ubicación dentro de un archivo. El paginador less no muestra esta información por defecto, aunque alternativas como most sí lo hacen. Numerar líneas es particularmente útil si estás inspeccionando código fuente y tratando de rastrear un error en una línea específica. Puedes usar la opción -p para desactivar los números de línea o la opción -n para mostrar los números de línea y nada más.

bat puede resaltar líneas o rangos

La numeración de líneas de bat es aún más efectiva cuando la combinas con el resaltado de líneas, que puedes usar en solo una línea o en un conjunto de rangos. La opción --highlight-line tiene algunas variaciones; aquí tienes un ejemplo:

bat 

Esto resaltará la línea 7 y las líneas 14-15 usando un color de fondo alternativo:

Una opción similar, --line-range, te permite mostrar solo ciertas líneas o rangos:

Por supuesto, puedes combinar las dos para mostrar parte de un archivo y resaltar líneas específicas al mismo tiempo:

bat funciona bien con git

Si estás usando bat para ver código fuente, te complace saber que tiene un gran soporte para git. bat mostrará cambios en un archivo si detecta que está en un repositorio de git:

bat mostrará símbolos familiares en el margen izquierdo de cada línea modificada para indicar si es nueva (+), ha sido eliminada (-) o ha sido alterada (~). Puedes usar la bandera --diff (-d) para indicarle a bat que solo muestre líneas con cambios, además de algunas líneas de contexto a su alrededor. Esta es una gran característica para revisar cambios en el código o ponerte al día en un proyecto al que estás regresando.

bat se comporta sensatamente si se encuentra en un pipeline

Ya hemos visto cómo bat usa un sentido común para decidir si usar un paginador, pero la herramienta tiene otras características inteligentes. En particular, la más útil es su capacidad de detectar qué tipo de salida es la más.

bat lo hace verificando si su salida se envía a un terminal no interactivo: por ejemplo, si se canaliza a otro proceso o a un archivo. En esos casos, probablemente no querrás que bat aplique resaltado de sintaxis, así que suprimirá los códigos de color especiales que normalmente produce. En este modo, actúa esencialmente como cat, desactivando todas las decoraciones, incluidos los números de línea y los resaltados de rango.

Aún puedes forzar a bat a producir salida formateada, incluso si está en una tubería. Esto es útil si sabes que el comando al que estás canalizando puede manejar los códigos de color ANSI, como el más pager, por ejemplo:

bat -f README.md | most

La opción --force-colorization (-f) le dice a bat que mantenga toda la coloración y decoraciones, así que es lo opuesto de --plain (-p).

bat funciona bien con man también

Como puedes configurar el pager que usa man para mostrar ayuda sobre los comandos de Linux, también puedes configurarlo para usar bat para una salida más agradable:

Para hacerlo, ejecuta man y establece MANPAGER de la siguiente manera:

MANPAGER="sh -c 'col -bx | bat -l man -p'" man ls

Este comando podría necesitar un poco de explicación porque hace bastante. Primero, establece la variable MANPAGER, y luego ejecuta "man ls" al final. Esta sintaxis (“NOMBRE=VALOR comando”) es una forma conveniente de establecer una variable de entorno para el comando específico que sigue.

El valor de MANPAGER es una llamada a sh (tu shell por defecto) con la opción -c para ejecutar un comando. A su vez, ese comando ejecuta dos programas, col y bat, canalizando la salida del primero a la entrada del segundo. El programa col ayuda a limpiar ciertos caracteres de formato, y bat se ejecuta con la opción "-l man" para usar la sintaxis de man para la coloración. La -p utiliza un estilo simple, que se adapta a las páginas de man.

bat tiene algunas opciones de configuración realmente útiles

Para este momento, es posible que hayas notado que bat es altamente configurable. Algunas de sus opciones son informativas, como --list-languages. Puedes usar --config-file para imprimir la ubicación de tu archivo de configuración de bat, por ejemplo.

Si buscas un esquema de color diferente (todos tenemos nuestros favoritos), echa un vistazo a las opciones --list-themes. Curiosamente, esta salida utiliza decoraciones y coloración, y puedes desactivarlas utilizando las opciones estándar:

La herramienta también soporta algunas opciones simples para controlar detalles específicos de formateo, así que puedes controlar su salida con precisión. Usa “--tabs n” para establecer el ancho de la tabulación en espacios, --chop-long-lines para truncar todas las líneas más largas que el ancho de la pantalla, y --squeeze-blank para comprimir las series de líneas en blanco a una sola línea.

bat es una de un número creciente de herramientas de línea de comandos de Linux escritas en Rust. Este ecosistema está fomentando una generación de aplicaciones TUI visualmente ricas e interactivas que están reemplazando a los comandos establecidos, y bat es una excelente adición a tu colección de herramientas de Linux.

Si deseas encontrar artículos similares a 8 hechos que hacen que el comando bat de Linux sea mejor que cat, te sugerimos revisar la categoría Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir