Ir al contenido

Hoja de referencia de bat

Hoja de referencia de bat

Un reemplazo moderno para catcon resaltado de sintaxis, integración de Git y paginación automática.

Instalación

PlatformComando
Ubuntu/Debiansudo apt install bat (binary may be named batcat)
Arch Linuxsudo pacman -S bat
Fedora/RHELsudo dnf install bat
macOS (Homebrew)brew install bat
macOS (MacPorts)sudo port install bat
Windows (Scoop)scoop install bat
Windows (Chocolatey)choco install bat
Windows (Winget)winget install sharkdp.bat
Rust/Cargocargo install --locked bat
Dockerdocker pull danlynn/bat
Nota: En Debian/Ubuntu, crea un alias si es necesario: alias bat='batcat'

Comandos Básicos

ComandoDescripción
bat file.txtMostrar archivo con resaltado de sintaxis y números de línea
bat file1.txt file2.pyMostrar múltiples archivos con encabezados
bat -n file.txtMostrar explícitamente los números de línea (habilitado de forma predeterminada)
bat -p file.txtPlain mode (no decorations, like cat)
bat -pp file.txtModo extra plano (salida completamente plana)
bat -A file.txtMostrar todos los caracteres no imprimibles (tabulaciones, espacios, saltos de línea)
bat -r 10:20 file.txtMostrar rango de líneas específico (líneas 10-20)
bat -r :50 file.txtMostrar primeras 50 líneas
bat -r 100: file.txtMostrar desde la línea 100 hasta el final
`echo “text” \bat`
bat --list-languagesMostrar todos los lenguajes de programación compatibles
bat --list-themesMostrar todos los temas de color disponibles
bat -l python file.txtForzar resaltado de sintaxis en un lenguaje específico
bat --plain file.txtDeshabilitar resaltado de sintaxis
bat --paging=never file.txtDeshabilitar paginación automática

Uso Avanzado

ComandoDescripción
bat --theme="Dracula" file.pyUsar tema de color específico
bat --diff file.txtMostrar modificaciones de Git con resaltado de sintaxis
bat --no-git file.txtDeshabilitar marcadores de integración de Git
bat --tabs=4 file.pyEstablecer ancho de pestaña personalizado
bat --wrap=never file.txtDeshabilitar ajuste de línea
bat --terminal-width=80 file.txtForzar ancho específico de terminal
bat --style=numbers,changes file.txtMostrar solo números de línea y cambios de Git
bat --style=header,grid file.txtMostrar solo separadores de encabezado y cuadrícula
bat --style=plain file.txtEliminar todas las decoraciones
bat --file-name="Custom" file.txtMostrar nombre personalizado en el encabezado
bat --decorations=never file.txtDeshabilitar todos los adornos (incluso cuando sean apropiados)
bat --color=always file.txtForzar salida de color (incluso al hacer pipe)
bat --paging=always file.txtForzar paginador incluso para archivos pequeños
bat --pager="less -RF" file.txtUsar pager personalizado con opciones
bat --map-syntax='*.conf:INI' file.confAsignar extensión de archivo a sintaxis específica
bat --generate-config-fileGenerar archivo de configuración predeterminado
bat cache --buildReconstruir caché de sintaxis/tema
bat cache --clearLimpiar caché de sintaxis/tema

Configuración

Ubicaciones del Archivo de Configuración

PlatformPath
Linux/macOS~/.config/bat/config
Windows%APPDATA%\bat\config

Archivo de Configuración de Ejemplo

Crear ~/.config/bat/configcon tus preferencias:

# Set default theme
--theme="Dracula"

# Always show line numbers and changes
--style="numbers,changes,header,grid"

# Use 4-space tabs
--tabs=4

# Automatic paging
--paging=auto

# Show non-printable characters
--show-all

# Enable italic text (if terminal supports)
--italic-text=always

# Custom syntax mappings
--map-syntax="*.conf:INI"
--map-syntax=".ignore:Git Ignore"
--map-syntax="*.jenkinsfile:Groovy"
--map-syntax="*.log:Log"
--map-syntax=".env:Bash"

Variables de Entorno

# Set default theme
export BAT_THEME="Dracula"

# Set default style components
export BAT_STYLE="numbers,changes,header"

# Set default pager
export BAT_PAGER="less -RF"

# Disable paging entirely
export BAT_PAGER=""

# Custom config directory
export BAT_CONFIG_PATH="/custom/path/to/config"

Temas Personalizados

# Create themes directory
mkdir -p "$(bat --config-dir)/themes"

# Download theme file (.tmTheme format)
cd "$(bat --config-dir)/themes"
wget https://example.com/theme.tmTheme

# Rebuild cache to use new theme
bat cache --build

Componentes de Estilo

Componentes de estilo disponibles (separados por comas):

ComponenteDescripción
fullTodos los componentes (default)
autoAutomático basado en la salida
plainSin decoraciones
numbersNúmeros de línea
changesMarcadores de modificación de Git
headerEncabezado de nombre de archivo
gridSeparadores de cuadrícula
ruleReglas horizontales
snipMarcadores de fragmentos para rangos de líneas

Casos de Uso Comunes

Caso de Uso: Revisión de Código con Integración de Git

# View file with Git changes highlighted
bat --diff src/main.py

# Compare with previous commit
git show HEAD~1:config.yaml | bat -l yaml --file-name="Previous Version"

# Review multiple changed files
git diff --name-only | xargs bat --diff

Caso de Uso: Análisis de Archivos de Registro

# View application logs with syntax highlighting
bat --language=log /var/log/application.log

# View specific error section
bat -r 1000:2000 /var/log/syslog | grep ERROR

# Monitor live logs (disable paging)
tail -f /var/log/app.log | bat --paging=never -l log

# Search logs with context
bat /var/log/nginx/error.log | grep -C 5 "ERROR"

Caso de Uso: Gestión de Archivos de Configuración

# Review system configurations
bat /etc/nginx/nginx.conf /etc/ssh/sshd_config

# Compare configurations side by side
diff <(bat -p config.prod.yml) <(bat -p config.dev.yml)

# Check for hidden characters in config
bat -A .env

# View Kubernetes resources
kubectl get deployment myapp -o yaml | bat -l yaml

Caso de Uso: Flujos de Trabajo de Docker y Contenedores

# View Dockerfile with syntax highlighting
bat Dockerfile

# Inspect docker-compose configurations
bat docker-compose.yml docker-compose.override.yml

# View container logs with syntax
docker logs container_name 2>&1 | bat --paging=never -l log

# Display formatted JSON from API
curl -s https://api.github.com/repos/sharkdp/bat | bat -l json

Caso de Uso: Desarrollo y Depuración de Scripts

# View shell script with line numbers
bat -n deploy.sh

# Check specific function (lines 45-78)
bat -r 45:78 automation.sh

# Detect problematic characters
bat -A problematic-script.sh

# View multiple related scripts
bat scripts/*.sh

Mejores Prácticas

  • Usar -ppara scripting: Al hacer tuberías o scripting, usa bat -pobat --plainpara evitar decoraciones que puedan interferir con el procesamiento
  • Configurar valores predeterminados: Configurar~/.config/bat/configcon tu tema y estilo preferido para evitar banderas repetitivas
  • Alias para reemplazo de cat: Agregaralias cat='bat --paging=never --style=plain'a tu configuración de shell para un reemplazo sin problemas
  • Aprovechar la integración de Git: Usar--diffal revisar cambios de código para ver modificaciones en línea con resaltado de sintaxis
  • Mapear extensiones personalizadas: Usar--map-syntaxen archivo de configuración para tipos de archivos específicos del proyecto (por ejemplo,.jenkinsfile,.conf)
  • Desactivar paginación para tuberías: Siempre usar--paging=neveral dirigir la salida a otros comandos para evitar problemas con paginador interactivo
  • Usar sugerencias de lenguaje: Para archivos sin extensiones, especificar explícitamente el lenguaje con-lpara un resaltado de sintaxis adecuado
  • Consistencia de tema: Elegir un tema que coincida con el esquema de colores de tu terminal para mejor legibilidad
  • Gestión de caché: Después de agregar temas o sintaxis personalizadas, ejecutarbat cache --buildpara hacerlos disponibles

Resolución de problemas

ProblemaSolución
Binary named batcat instead of batCreate alias: alias bat='batcat' or symlink: ln -s /usr/bin/batcat ~/.local/bin/bat
No syntax highlightingCheck language support with bat --list-languages and use -l to force language
Pager interferes with pipesUse bat --paging=never or set export BAT_PAGER=""
Theme not displaying correctlyVerify terminal supports 256 colors; try different theme with bat --theme="GitHub"
Custom theme not appearingEnsure theme file is in $(bat --config-dir)/themes/ and run bat cache --build
Line numbers misalignedCheck tab width setting; adjust with --tabs=4 or in config file
Git integration not workingEnsure file is in Git repository; disable with --no-git if not needed
Config file changes ignoredVerify file location with bat --config-file; check for syntax errors in config
Performance issues with large filesUse --paging=never and pipe to less, or use line ranges with -r
Unicode characters display incorrectlyEnsure terminal uses UTF-8 encoding; check locale settings

Referencia rápida: Banderas comunes

CortoLargoPropósito
-p--plainModo de salida simple
-n--numberMostrar números de línea
-A--show-allMostrar caracteres no imprimibles
-l--languageEstablecer sintaxis de lenguaje
-r--line-rangeMostrar rango de líneas
-H--highlight-lineResaltar líneas específicas
-d--diffMostrar diferencia de Git
--themeEstablecer tema de color
--styleEstablecer componentes de estilo
--pagingControlar el comportamiento del pager
--tabsEstablecer ancho de pestaña