362 - Mi experiencia con Zsh y Oh My Zsh tras 4 meses de uso
Durante estos últimos cuatro meses he estado trabajando con Zsh, en este podcast te cuento mi experiencia con Zsh y Oh My Zsh y alternativas
Siempre me tomo a la ligera aquello de el tiempo vuela. Sin embargo, lo cierto, es que ya han pasado aproximadamente unos cuatro meses desde que adopté Zsh, como mi shell de trabajo, y Oh My Zsh como el framework que lo acompaña. Ha llegado el momento de echar la vista atrás, hacer una valoración y contarte mi experiencia con este shell y este framework. Ha llegado el momento de contarte mi experiencia con Zsh y Oh My Zsh, y, replantearse en su caso, si continuar con esta pareja, o recular.
Desde luego, no quiero que estés con la duda hasta haber leído las notas del podcast, o hasta haber escuchado el mismo. La valoración de mi experiencia con Zsh y Oh My Zsh no puede ser mas positiva, y en este sentido, te tengo que decir, que definitivamente me quedo con ambos, al menos durante los próximos tiempos.
Mi experiencia con Zsh y Oh My Zsh tras 4 meses de uso
Los inicios
Antes de nada, antes de contarte lo encantado y maravillado, antes de contarte mi experiencia con Zsh y Oh My Zsh, no quiero engañarte lo más mínimo. Y es que para mi los inicios ha sido algo tortuosos. Y han sido algo tortuosos, por el simple hecho de que tengo unas pocas decenas de scripts implementados en Bash, y que he tenido que migrarlos o adaptarlos según el caso para poder utilizarlos bajo Zsh, y en particular bajo Oh My Zsh.
Tampoco te quiero asustar. No quiero que pienses que ha sido un arduo trabajo. Lo cierto, es que han sido pequeños cambios, que voy incorporando conforme voy necesitando cada uno de los scripts. Y en algunos de ellos, no he tenido que hacer absolutamente nada, pero, tenía que decirlo.
¿Grandes cambios?
La verdad es que no he notado grandes cambios al pasar de Bash a Zsh. Aunque hay algunas cuestiones que todavía no me termino de acostumbrar. Quizá no haya notado grandes cambios por que el framework Bash-it, funciona muy bien, y es bastante similar a Oh My Zsh.
Sin embargo, te tengo que decir, que he notado una mejor integración de Oh My Zsh, y mucha mas información en el propio prompt, lo que realmente me ayuda muchísimo a trabajar en la terminal, y a desenvolverme con fluidez a la hora de utilizar Git, y esto es una verdadera comodidad.
Lo que todavía no he logrado acostumbrarme es a la sincronización entre terminales. Es decir, en el caso de Zsh, el historial se va sincronización entre las distintas sesiones que tienes abiertas, lo que te puede llevar a engaño, y es lo que me sucede a mi.
Esto podría verlo en algún caso como un inconveniente, pero por el momento es mas bien todo lo contrario. Por otro lado, algo que si que me parece realmente ventajoso es las sugerencias. No me refiero al autocompletado, si no a las sugerencias que aparece en gris y que te ayudan a realizar determinadas operaciones que haces habitualmente.
Por ejemplo, cuando redimensiono una imagen, y escribo convert -resize 1200x800! <origen> <destino>
, nada mas empezar a escribir convert
, ya me aparece en gris el resto. Esto es una ventaja, sobre todo cuando no recuerdas exactamente la sintaxis de algún comando, aunque lo hagas todos los días.
La ansía de probar
A raíz de contar mi experiencia, en el grupo de telegram de atareao con Linux, surgieron otros framework y gestores de plugin.
Como te puedes imaginar, tras el éxito de Zsh y Oh My Zsh, no podía resistirme a probarlo, pensando en que probablemente descubriría la panacea. Pero, esto no ha sido buena idea para mi.
Si has seguido mi trayectoria, ya te habrás dado cuenta de que soy muy conservador, en lo que ha tecnología se refiero. Creo que el dicho si algo funciona, no lo toques, encaja perfectamente con mi personalidad tecnológica. Esto, lo puedes ver en el tiempo que he estado utilizando Ubuntu como distribución de cabecera, hasta que recientemente me he pasado a Manjaro, o lo mismo se podría decir con Bash y Zsh.
Creo, y esto es una sospecha que tengo de mi mismo, que necesito un tiempo de maduración en una tecnología antes de dar el salto a probar otra. En este caso, me refiero evidentemente a la misma categoría. Es decir, que si llevo un tiempo utilizando una distribución de Linux, necesito un tiempo acostumbrarme a ella antes de probar otra.
Por supuesto, que no me refiero a ser un pica flor, es decir, a ir probando distribución tras distribución, si profundizar lo mas mínimo en ellas. Me refiero a hacer un uso intensivo de la tecnología, ya sea, distribución, shell, o lo que sea.
¿Que he probado?
Prezto
He probado un framework alternativo a Oh My Zsh, que se llama Prezto, y del cual hice un vídeo que publicaré en breve, donde muestro como instalarlo y una configuración básica.
En este caso de Prezto, mi vuelta a Oh My Zsh ha sido casi inmediata. No había terminado de instalarlo y casi que ya había vuelto a Oh My Zsh. Y probablemente, el problema mas grande con el que me he encontrado es el hecho de la configuración o alta de mis propios plugins.
Con el poco tiempo que he estado, no me he aclarado como tenía que añadir mi propio plugin, me ha parecido enrevesado. Sin embargo, te tengo que decir, que esto es opinión de picaflor, en el sentido de que ha sido un visto y no visto.
Ahora, después de instalar y desinstalar y volver a Oh My Zsh, es cuando he podido apreciar, lo poco que me costó poner en marcha mi propio plugin en Oh My Zsh. En estos momentos, lo que quiero es algo que sea sencillo de instalar, configurar y mantener. Y sobre todo, adaptar a mis propias necesidades.
Gestores de plugins
Lo de los gestores de plugins no he terminado de comprenderlo. Tengo que ser así de claro. En el caso de Oh My Zsh, añadir o quitar un plugin, es tremendamente sencillo. No necesito tener un gestor de plugins, o por lo menos yo no lo veo necesario. Aún así, he estado revisando una comparativa realmente interesante y que te invito a que visites, en el que compara distintos gestores de plugins. Por resumirte,
Name | Manager | Plugins | Frameworks Supported | Other Features | Speed with 0 plugin |
---|---|---|---|---|---|
antigen | bytecode compiling, static bundle loading | – | oh-my-zsh | – | 60 ms |
zgen | static loading | – | oh-my-zsh, prezto | – | 50 ms |
antibody | executed in Go, or static loading | – | oh-my-zsh | – | 50 ms |
zplug | cache mechanism | parallel loading | oh-my-zsh, prezto | managing scripts | 160 ms |
zplugin | bytecode compiling | bytecode compiling, Turbo Mode (background loading) | oh-my-zsh, prezto | managing scripts, completions, plugin report | 50 ms |
Como estaba probando Prezo, me he decantado inicialmente por aquellos que soportaban Prezto. Por supuesto, me he decantado por los mas rápidos, aquellos que tienen una mayor velocidad en carga, tanto con 0 plugins como con mas.
Antes de instalar y probar, me gusta dar un paseo por los repositorios, y esto es lo que mas me llamó la atención. La mayoría no han tenido actualizaciones en mucho tiempo. En general, esto no debería de preocupar, sin embargo, teniendo en cuenta que tanto Oh My Zsh, como Zsh, tienen actualizaciones mas o menos periódicas, me he quedado bastante mosqueado.
Para que te hagas una idea, un tema que utilizo habitualmente como es powerlevel10k se actualizó hace menos de dos semanas, los autocompletados, no llega ni a una hora, y así sucesimanente.
Pero para mi, el problema no ha sido ni mucho menos las actualizaciones, el problema fundamental, igual que me sucedió con el caso de Prezto, han sido la configuración de mis plugins… no he sabido hacerlo, todo un desastre.
Y aquí terminó la aventura… De regreso a Oh My Zsh.
¿Y ahora?
Como te decía en la introducción, me encuentro muy cómodo y satisfecho con esta combinación formada por Zsh y Oh My Zsh, y creo que voy a estar una larga temporda con esta pareja. Supongo que hasta que encuentre un sustituto en Rust 😉.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Imagen de portada de Chad Kirchoff
Atareao! que tambien existe Oh my bash!
Yo empece a hacer scripts en Unix y ksh fue mi gran ayuda, frente a otros como csh, que aun hoy me cuesta leerlo, pero lo buenísimo fue cuando caí en Linux que bash había cogido toda esa filosofía y la integro perfectamente a su ser junto con muchas mejoras, desde entonces mi sh es bash, he probado zsh, fish, y algún otro pero bash sera el sh con el que cerrare mi ultimo shell.
He estado utilizando hasta hace, recientemente poco, Bash-it, y era mi recomendación de framework para Bash. La he disfrutado mucho, pero, ZSH todavía tiene un punto adicional.
Un saludo y gracias por la recomendación.