>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Rust

Serpl — Búsqueda y reemplazo estilo VS Code directamente en la terminal

Imagina esta situación: estás trabajando en un proyecto grande y necesitas renombrar una variable en docenas de archivos. ¿Abrir cada archivo en un editor? ¿Usar scripts de sed complicados? Ahora hay una solución elegante — serpl.

¿Qué es Serpl?

Serpl es una aplicación de terminal escrita en Rust que trae la comodidad de búsqueda y reemplazo de VS Code directamente a tu terminal. No es solo una utilidad de grep/sed, sino una TUI completa (Text User Interface) con vista previa interactiva y configuración flexible.

¿Por qué probarlo?

  • Interfaz completa — no solo salida de consola, sino navegación práctica por paneles
  • Maneja proyectos grandes — integrado con ripgrep para búsqueda rápida
  • Búsqueda AST — soporte de ast-grep para consultas precisas de árbol de sintaxis
  • Configuración flexible — soporta JSON/TOML/YAML
  • Integración — funciona con Neovim y Helix

Instala en un minuto

Para usuarios de Rust:

cargo install serpl

O mediante administradores de paquetes:

  • Homebrew: brew install serpl
  • Arch Linux: pacman -S serpl
  • NixOS: nix profile install nixpkgs#serpl

Características principales

1. Búsqueda interactiva con vista previa

Serpl muestra los resultados de búsqueda en tiempo real con resaltado de coincidencias. Puedes navegar entre archivos y ver el contexto sin salir de la terminal.

2. Reemplazo inteligente

Soporta múltiples modos de reemplazo:

  • Reemplazo simple
  • Preservar mayúsculas/minúsculas
  • Basado en AST (vía ast-grep)

3. Modos de búsqueda flexibles

  • Texto plano
  • Distinguir mayúsculas de minúsculas
  • Palabra completa
  • Expresiones regulares
  • Búsqueda AST (para lenguajes de programación)

4. Integración completa con editores de terminal

Neovim tiene una configuración lista para usar:

return {
  "akinsho/toggleterm.nvim",
  cmd = { "ToggleTerm", "TermExec" },
  -- ... конфигурация ...
}

Y para Helix, simplemente añade:

[keys.normal.ret]
t = [":write-all", ":insert-output serpl >/dev/tty", ":redraw", ":reload-all"]

¿Cuándo es especialmente útil?

  1. Refactorización de código — renombrado masivo de variables/funciones
  2. Migraciones — cambios de API, actualizaciones de dependencias
  3. Trabajo en servidores remotos — cuando no hay GUI pero necesitas búsqueda práctica
  4. Exploración rápida de código — encontrar todos los usos de una función

Bajo el capó

  • Construido con Rust para máximo rendimiento
  • Usa ratatui.rs para la interfaz
  • Se integra con ripgrep y ast-grep
  • Soporta configuración en 5 formatos (JSON, JSON5, YAML, TOML, INI)

Serpl es más que un simple reemplazo de grep/sed, sino una herramienta seria para desarrolladores que trabajan extensivamente en la terminal. Si:

  • Amas las herramientas CLI
  • Frecuentemente trabajas en servidores remotos
  • Valoras la velocidad y la comodidad

entonces serpl definitivamente merece un lugar en tu kit de herramientas. El proyecto se desarrolla activamente (700+ estrellas en GitHub) y acepta contribuyentes.

Como bonus — prueba la combinación Ctrl+o para reemplazo masivo en todos los archivos. ¡Ahorro de tiempo garantizado!

Proyectos relacionados