¿Qué es ripgrep?
ripgrep (el comando rg) es una herramienta de búsqueda orientada a líneas escrita en Rust por Andrew Gallant. Busca recursivamente en el directorio actual un patrón de expresión regular respetando las reglas de tu .gitignore y omitiendo automáticamente archivos ocultos, ignorados y binarios. Es el motor de búsqueda que usan editores como VS Code y suele ser más rápido que GNU grep, The Silver Searcher y ack.
--engine auto para recurrir a PCRE2 de forma transparente, una salida --json más rica y mejoras constantes de rendimiento en su motor de expresiones regulares. La versión del archivo oficial es anterior a casi todo eso.
⚡ Características principales de ripgrep
🚀 Extremadamente rápido
Un motor de expresiones regulares basado en autómatas finitos, escaneo SIMD de literales, mapeo de memoria y recorrido de directorios en paralelo lo hacen más rápido que grep en árboles grandes.
🙈 Respeta .gitignore
Omite por defecto los archivos ignorados, ocultos y binarios, así que los resultados son los que realmente te interesan. Puedes anularlo con -u, -uu o -uuu.
🌍 Soporte Unicode completo
Compatible con Unicode por defecto: clases de caracteres, plegado de mayúsculas, límites de palabra y grafemas funcionan correctamente, sin coste real de velocidad.
🧩 Expresiones PCRE2
-P habilita look-around y retrorreferencias. Esta compilación incluye PCRE2, así que funciona de inmediato y con JIT.
📄 Filtrado por tipo de archivo
Limita la búsqueda a un lenguaje con -t rust, exclúyelo con -T html o define tus propios tipos. Incluye más de 800 patrones.
🔁 Multilínea y sustitución
Busca a través de saltos de línea con -U, previsualiza sustituciones con -r y genera resultados estructurados con --json.
apt upgrade te mantiene en la última versión.
📦 Instalación desde deb.griffo.io
Paso 1: Agregar repositorio
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatePaso 2: Instalar ripgrep
# Instalar la última versión de ripgrep
sudo apt install ripgrep
# Verificar la instalación
rg --version# Instalar la última versión de ripgrep
apt install ripgrep
# Verificar la instalación
rg --versionPaso 3: Autocompletado del shell
# El autocompletado para bash, zsh y fish viene con el paquete:
# no hay nada que configurar. Abre un shell nuevo y pulsa Tab:
rg --ty<Tab>
# La página de manual también se instala
man rg🎯 Ejemplos de uso básico
Búsquedas del día a día:
# Buscar en el árbol de directorios actual
rg 'TODO'
# Sin distinguir mayúsculas, palabra completa
rg -i -w 'timeout'
# Mostrar 3 líneas de contexto por coincidencia
rg -C 3 'panic!'
# Listar solo los archivos con coincidencias
rg -l 'BurntSushi'Filtrar qué se busca:
# Solo archivos Rust
rg -t rust 'unsafe'
# Todo excepto HTML y CSS
rg -T html -T css 'font-size'
# Incluir archivos ignorados y ocultos
rg -uu 'password'
# Restringir con un glob
rg -g '*.toml' 'version'Más allá de grep:
# Look-around y retrorreferencias con PCRE2
rg -P '(?<=fn )\w+' src/
# Buscar a través de saltos de línea
rg -U 'struct \w+ \{\n[^}]*pub'
# Previsualizar una sustitución (no escribe archivos)
rg 'v(\d+)\.(\d+)' -r 'v$1.$2.0'
# Salida estructurada para scripts
rg --json 'error' | jq -r 'select(.type=="match") | .data.path.text'🔧 Integraciones
ripgrep es el motor de búsqueda que esperan muchas otras herramientas:
- fzf: grep interactivo con recarga en vivo usando
rgcomo origen - Neovim / Telescope:
live_grepusa ripgrep si está en el PATH - Helix: la búsqueda global se apoya en las mismas bibliotecas
- bat: vistas previas con resaltado de sintaxis de los resultados
- Yazi: búsqueda del gestor de archivos basada en ripgrep
🚀 ¿Por qué elegir deb.griffo.io?
- Debian oficial: disponible, pero congelado en la versión con la que se publicó la release
- Instalación manual: requiere una cadena de herramientas de Rust o gestionar a mano el binario y su autocompletado
- deb.griffo.io: última versión con actualizaciones automáticas
- ✅ Últimas funciones: las opciones, mejoras del motor y trabajo de rendimiento más recientes
- ✅ Sin configuración manual: binarios precompilados, sin necesidad de compilar con cargo
- ✅ Actualizaciones automáticas: paquetes actualizados pocas horas después de cada versión upstream
- ✅ Paquete completo:
rg, la página de manualrg.1y autocompletado para bash/zsh/fish - ✅ Sin dependencias: compilación musl enlazada estáticamente y con PCRE2 incluido
- ✅ Multidistribución: funciona en Bookworm, Trixie, Forky y Sid
- ✅ Mantenimiento sencillo: comandos apt estándar para actualizar
📦 Repositorio de compilación del paquete
Los paquetes de Debian se compilan y mantienen automáticamente en este repositorio de GitHub:
- 🔎 ripgrep-debian - Compilaciones de las últimas versiones
🔗 Paquetes relacionados
También disponibles en deb.griffo.io:
- fzf - Buscador difuso que combina con ripgrep para búsquedas interactivas
- eza - Reemplazo moderno de ls
- zoxide - Comando cd inteligente
- Yazi - Usa ripgrep para buscar archivos
.gitignore por defecto, editores y herramientas que invocan rg, y usuarios a los que les importa la velocidad de búsqueda en árboles de directorios grandes.