Zoxide: El reemplazo de cd escrito en Rust que aprende tus hábitos de navegación

Zoxide: El reemplazo de cd escrito en Rust que aprende tus hábitos de navegación

El comando estándar cd es fundamental para moverse por el sistema de archivos, pero su naturaleza jerárquica se vuelve un obstáculo cuando trabajas con estructuras de directorios profundas o múltiples repositorios.

En un flujo de trabajo real, moverte de ~/dev/projects/backend/go-service a ~/dev/clients/legacy/frontend-app requiere escribir la ruta completa o ejecutar cd varias veces para subir y bajar niveles.

Zoxide: Indexado inteligente de rutas

Zoxide es una herramienta de CLI escrita en Rust diseñada para resolver este problema de fricción. Funciona manteniendo una base de datos local de los directorios que visitas.

Su algoritmo asigna un "peso" o ranking a cada ruta basándose en dos factores:

  1. Frecuencia: Cuántas veces visitas el directorio.
  2. Recencia: Cuándo fue la última vez que accediste.

Esto permite que Zoxide prediga a dónde quieres ir con solo escribir una fracción del nombre del directorio, eliminando la necesidad de recordar la ruta absoluta.

Implementación en el flujo de trabajo

El funcionamiento es transparente. Una vez instalado, Zoxide aprende de tu navegación habitual.

Supongamos que trabajas recurrentemente en la siguiente ruta: ~/dev/work/stripe-integration/api

1. Saltos directos (Smart Jump)

En lugar de escribir toda la ruta, desde cualquier ubicación del sistema ejecutas:

Bash

z stripe

Zoxide identifica que "stripe" es el término más relevante en tu historial reciente y te mueve a ese directorio instantáneamente. Si tienes otro proyecto llamado stripe-docs que visitas menos, el comando z stripe priorizará el proyecto principal, mientras que z docs te llevaría al segundo.

2. Selección interactiva (zi)

Para situaciones donde tienes múltiples carpetas con nombres similares (ej. v1, v2, v3), el comando zi lanza una interfaz de selección. Si tienes fzf instalado, esto despliega un buscador difuso para filtrar y elegir el destino visualmente.

Instalación y Configuración

Al estar escrito en Rust, Zoxide es extremadamente rápido y compatible con la mayoría de las arquitecturas.

Instalación vía gestores de paquetes:

  • Arch Linux: sudo pacman -S zoxide
  • Debian/Ubuntu: sudo apt install zoxide
  • macOS: brew install zoxide
  • Windows: winget install zoxide

Integración con la Shell

Para que la herramienta funcione, debe engancharse a la sesión de tu terminal. Es necesario agregar el script de inicialización a tu archivo de configuración (.bashrc, .zshrc, config.fish, etc.).

Para Bash:

eval "$(zoxide init bash)"

Para Zsh:

eval "$(zoxide init zsh)"

Después de agregar la línea, reinicia la terminal para comenzar a indexar tu navegación.

Estrategia de adopción: Alias vs Reemplazo

Zoxide ofrece flexibilidad en cómo se integra a tu entorno:

  1. Comando Complementario: Por defecto, usas z para saltos rápidos y mantienes cd para navegación estructura o creación de directorios nuevos.
  2. Reemplazo de cd: Puedes configurar Zoxide para que sobreescriba el comando cd.

Bash

zoxide init zsh --cmd cd

Con esta configuración, el comando cd adquiere las capacidades de búsqueda de Zoxide, manteniendo la compatibilidad con rutas relativas (cd ..).

GitHub - ajeetdsouza/zoxide: A smarter cd command. Supports all major shells.
A smarter cd command. Supports all major shells. Contribute to ajeetdsouza/zoxide development by creating an account on GitHub.