604 - Exprimiendo la terminal con Fish, zoxide y just
Algunas herramientas para la #terminal de #linux que te permitirán exprimirla hasta límites nunca vistos, #fish #zoxide #just #atuin son solo unos ejemplos
Por fin vuelvo a casa. Después de unos meses utilizando Wezterm, definitivamente he conseguido regresar a Kitty. Esto no hace mas que confirmar, algo que conté en un episodio anterior del podcast, que algo había hecho rematadamente mal con las herramientas y aplicaciones instaladas. Probablemente alguna librería o aplicación, pero no lo se con certeza. Lo que seguro, es que no era solo Kitty la afectada, también espanso, que otra de esas herramientas que se ha convertido en imprescindible para mi. La cuestión es que al instalar en el nuevo equipo las aplicaciones que suelo utilizar me he dado cuenta que había cambiado algunas de ellas por otras, y esto es precisamente lo que te quiero contar. Las aplicaciones que actualmente estoy utilizando y que me han hecho ganar en productividad y que exprimir la terminal un poco mas si cabe.
Exprimiendo la terminal con Fish, zoxide y just
Durante estos últimos años mi relación con la terminal se ha ido intensificando, y poco a poco, he ido descubriendo diferentes herramientas, como las que te voy a mencionar a continuación, que han ido transformando y mejorando mi productividad. Algunas de estas herramientas están revolucionando el uso de la terminal, tanto para desarrolladores como para administradores de sistemas. Estas herramientas no solo han conseguido mejorar mi eficiencia y productividad, sino que también me simplifican enormemente determinadas tareas complejas, permitiendo una mayor fluidez en el flujo de trabajo, básicamente realizar mas en menos tiempos. Alguns de las herramientas de las que te hablaré a continuación son, Kitty, Zellij, YT-DLP, Fish, Zoxide, Atuin, Ripgrep, Just y YADM.
Kitty: Un Emulador de Terminal Potente
Kitty es un emulador de terminal gráfico para plataformas como Linux y macOS, conocido por su velocidad y capacidad de personalización. Desarrollado en Python y C, Kitty aprovecha OpenGL para renderizar gráficos, lo que le permite ser notablemente más rápido que muchos de sus competidores. Una de las características distintivas de Kitty es su capacidad para manejar múltiples instancias y divisiones de ventanas, lo que facilita el trabajo multitarea. De esta terminal, te he hablado en diferentes ocasiones, pero con el problema que tuve con algunos tipos de caracteres dejé de utilizarla durante un tiempo, para usar Wezterm. De hecho, cuando regresé a Kitty, en mi última actualización, tuve problemas, que puede resolver ajustando la variable de entorno TERM
. Cambiar esta variable a un valor compatible como xterm-256color
. En mi caso particular, la solución fue indicar directamente que utilizaba kitty
y listo.
Zellij: Gestión de Paneles en la Terminal
Zellij es un gestor de paneles en la terminal desarrollado en Rust, diseñado para ser una alternativa moderna y más potente a tmux. Permite dividir la terminal en múltiples paneles y administrar aplicaciones en diferentes disposiciones de ventana. Yo no soy un usuario de multiplexores. De hecho, lo uso para determinadas ocasiones, en general, prefiero abrir uno o varios terminales y desplazarme entre ellos utilizando atajos de teclado. Por esta razón, soy un fiel seguidor de los tiling window manager. Pero en cualquier caso, las posibilidades que ofrece zellij
, son a tener muy en cuenta.
Un uso común de Zellij es la configuración de paneles para monitorización del sistema. Por ejemplo, puedes configurar un layout que incluya herramientas como htop
, glances
, y un terminal regular. De esta forma en un solo vistazo tiene una idea de lo que está sucediendo.
YT-DLP: Descarga de Videos de YouTube
YT-DLP es un fork de YouTube-DL que te ofrece funcionalidades mejoradas para la descarga de videos de YouTube y otras plataformas. Es especialmente útil para ti si necesitas descargar contenido para su uso offline o análisis posterior. En mi caso particular, lo utilizo para los post que hago en X
, que los creo de forma automatizada. O mejor dicho creaba, porque en la última actualización, ha dejado de funcionarme desde el VPS, aunque en local me sigue funcionando a las mil maravillas.
Fish: Shell Interactivo
Fish (Friendly Interactive SHell) es una shell interactiva diseñada para ser más fácil de usar que otros shells como Bash o Zsh. Fish viene con una serie de características que mejoran la experiencia del usuario y la productividad. Ha sido un largo camino el que emprendí partiendo de Bash y pasando por Zsh, para finalmente acabar en Fish, pero ha sido un camino interesante, y que ha dado sus frutos. Actualmente me siento increibleblemente cómodo con esta shell, aunque te digo, que comete muchos errores, pensando que sigo trabajando en Bash.
Zoxide: Navegación Rápida de Directorios
Zoxide es una herramienta de navegación de directorios que permite a los usuarios saltar rápidamente entre directorios frecuentemente utilizados. Inspirado en herramientas como autojump
y z
, Zoxide se centra en la simplicidad y la velocidad. Zoxide es una de esas herramientas que rápidamente se han convertido en un compañero infatigable y que realmente mejoran mi productividad de forma exponencial. Características como el aprendizaje, que hacen que Zoxide aprenda de tus hábitos de nevegación y sea capaz de predecir a que directorio realmente quieres ir, lo hacen imprescindible.
En realidad, a pesar de que estoy muy acostumbrado al uso de cd
, lo cierto es que en los últimos tiempos, estoy haciendo z
incluso en la misma ruta en la que me encuentro, simplemente por cuestiones prácticas.
Atuin: Historial de Comandos Mejorado
Atuin es una herramienta que mejora el historial de comandos de la terminal, ofreciendo una manera más potente y flexible de buscar y reutilizar comandos anteriores. Funciona de manera similar a ctrl-r
, pero de forma vitaminada. Atuin te permite realizar busquedas en el historial de comandos utilizando filtros, y palabras claves. Además utiliza lógica difusa para llevarte al resultado óptimo en el menor tiempo posible.
Aunque Atuin te permite sincronizar el historial entre distintos dispositivos, lo cierto es que esto no he llegado a sacarle partido, a pesar de que llegué a montar un servidor en modo self-hosted.
Ripgrep: Búsqueda Eficiente en la Terminal
Ripgrep (rg) es una herramienta de búsqueda en la terminal que ofrece un rendimiento superior y características avanzadas en comparación con otras herramientas tradicionales como grep
. Yo te diría que es la herramienta de búsqueda, por el desempeño que tiene. Desarrollado en Rust, Ripgrep está diseñado para ser rápido y eficiente. Así, Ripgrep es notablemente más rápido que grep
, además, soporta expresiones regulares avanzadas, permitiendo búsquedas complejas y precisas, pero sobre todo, se trata de una herramienta que es muy sencilla de utilizar, con una sintaxis muy sencilla.
Creo que tanto para desarrolladores, como para administradores de sistemas es una herramienta imprescindible. En mi caso la utilizo integrada con Neovim
, lo que me permite realizar búsquedas en todo mi código de forma extremadamente rápida. Ya seas administrador de sistemas, como si eres desarrollador o un usuario de a pie, es esa herramienta que necesariamente tienes que probar.
Just: Automatización de Tareas
Just es una herramienta para la automatización de tareas similar a make
, pero con una sintaxis más amigable y moderna. Es especialmente útil para la definición de recetas y scripts que se ejecutan frecuentemente. Actualmente, la estoy utilizando para todo tipo de operaciones. Desde crear imágenes docker o gestionar contenedores, hasta extraer el audio de un vídeo o añadir una portada.
Si bien, es esa herramienta que todo desarrollador tiene que tener en su stack tecnológico, te aseguro que con independencia de lo que hagas en tu equipo, es una herramienta de la que no deberías prescindir en ningún caso.
YADM: Gestión de Dotfiles
YADM (Yet Another Dotfiles Manager) es una herramienta para la gestión de dotfiles que utiliza Git para el control de versiones. Permite a los usuarios administrar sus configuraciones y sincronizarlas entre diferentes máquinas. Sabes, que soy un amante y un fiel seguidor del uso de dotfiles. Son muchos años trabajando con este tipo de archivos de configuración, y cada vez mas convencido que es la forma sana de configurar un equipo.
En este tiempo he pasado por diferentes gestores de dotfiles, y este, yadm, es el que cumple actualmente con todas mis necesidades. Sencillo, pero a la vez potente. Desde luego, si todavía no te has iniciado en esto de los dotfiles, yadm, es un buen punto de comienzo.
Conclusión
Estas son algunas de las herramientas que utilizo en mi día a día. Son herramientas que se han ido incorporando de a pocos en mi caja de herramientas particular. Lo cierto, es que dando un vistazo atrás, me doy cuenta de lo que ha mejorado mi flujo y relación con la terminal. Son herramientas que creo tienes que al menos probar, para que veas su potencial, y decidas si realmente te son de utilidad o no. Desde luego, que para mi lo son.
Más información,
- Kitty: https://sw.kovidgoyal.net/kitty/
- Zellij: https://zellij.dev/
- YT-DLP: https://github.com/yt-dlp/yt-dlp
- Fish Shell: https://fishshell.com/
- Zoxide: https://github.com/ajeetdsouza/zoxide
- Atuin: https://github.com/ellie/atuin
- Ripgrep: https://github.com/BurntSushi/ripgrep
- Just: https://github.com/casey/just
- YADM: https://yadm.io/