456 - Bash y viene Zsh o donde dije Bash…

456 - Bash y viene Zsh o donde dije Bash…

Después de poco mas de mes y medio de vuelta a Bash, regreso a Zsh. Me he dado cuenta que para mi flujo de trabajo se adapta mejor. Te cuento como.

1:25
-3:15

En el episodio 442 del podcast titulado creo que tengo tiling-hopping, y una marcha atrás, te comenté que había decidido regresar a Bash, y te expliqué algunas de las razones para volver a Bash. Básicamente, se resumía en que no terminaba de encontrarme y por el otro lado la compatibilidad que todo el ecosistema de Servidores, Raspberry, etc. Sin embargo, no ha pasado ni mes y medio, y me he dado cuenta de que, para el uso que yo le estoy dando, Zsh se adecua mucho mas a mi flujo de trabajo, así que he decidido dejarme de tonterías y ponerme serio. Así que se va Bash y viene Zsh, o como quería haber titualado este episodio del podcast, donde dije Bash, digo Zsh.

Sin embargo, no he vuelto a Zsh de la misma forma en la que me encontraba, y esto es precisamente lo que quería contarte, mi regreso a lo especialito. Me he dejado parte del lastre atrás.

Bash y viene Zsh o donde dije Bash…

Bash y viene Zsh o donde dije Bash…

¿Porque de tantas idas y venidas?

Lo primero es explicarte la razón de que haya regresado a Zsh. Y la razón es bastante sencilla, soy mas productivo en Zsh, así de sencillo. Me acostumbré a determinadas comodidades que me ofrece Zsh y que no encuentro en Bash. Y evidentemente la productividad manda.

La cuestión es que desde hace como mes y medio, me daba cuenta de que intentaba una y otra vez seguir el mismo patrón que estaba utilizando en Zsh, pero con Bash. Echaba de menos las sugerencias que te propone Zsh conforme vas escribiendo y algunas que otras comodidades.

Sin embargo, me he estado resistiendo hasta el último momento. Y la razón para esto es Oh-My-Zsh. Soy consciente de que este gestor de complementos para Zsh funciona fantástico. Sin embargo, hay aspectos de este gestor que no controlaba. A mi me gusta tenerlo todo bajo mi mano. Y por esta razón, en este caso, he preferido preferido prescindir de esta herramienta.

No soy el único

La realidad es que Zsh, realmente no necesita ningún gestor de complementos, y tengo la impresión, y solo es una impresión, de que OMZ, ralentiza el comportamiento de la consola. Por otro lado, algo que me desespera, es tener complementos con decenas de opciones preconfiguradas y no tener ni idea de que hacen, y ni siquiera haberlas utilizado en una única ocasión.

Total, que viendo estos sentimientos encontrados que me rondaban la cabeza, decidí ver si era el único que me encontraba en esta situación, y lo cierto es que no. Huam Benvenutti, también explica que esto mismo que te he indicado anteriormente.

Rust viene al rescate

Otra de las razones para huir tanto de OMZ, como de Bash-it, y otros gestores, es que cada vez utilizo mas herramientas proporcionadas por Rust.

Starship

Hasta el momento estaba utilizando potenciadores del prompt para embellecerlo por un lado, y para proporcionar mayor información por el otro.

Sin embargo, tal y como te conté en el episodio 378 del podcast sobre Un prompt para gobernarlos a Todos, la cuestión es que con Starship, este aspecto lo tengo perfectamente resuelto, y no solo tengo un prompt con toda la información que necesito, sino que además, es elegante o por lo menos a mi me gusta.

Zoxide

Otra de las herramientas proporcionadas por Rust es Zoxide, o como su desarrollador lo describe un cd inteligente. Se trata de una herramientas que está basada en z y autojump, pero integrada, por decirlo de alguna forma.

Para cambiar a un directorio u otro utiliza una determinada ranking, en base a cuando fue el último acceso. Así cuanto mas reciente haya sido tu último acceso mas probabilidades de que te vuelva a llevar al mismo. Aquí puedes encontrar el algoritmo, en el que se basa.

Otros detalles interesantes,

  • No distingue entre mayúsculas y minúsculas
  • Todos los términos de la búsqueda deben estar presentes en la ruta, y en el mismo orden
  • El último componente de la búsqueda debe coincidir con el último componente de la ruta.
  • El orden de los resultados está en base a la frecuencia, como he indicado anteriormente.

skim

Skim es el equivalente a fzf pero implementado en Rust. Así, por ejemplo, lo tengo integrado para realizar búsquedas de algún comando que introduje recientemente. Pero, por supuesto también, para realizar búsquedas interactivas. Así lo puedes integrar con herramientas como grep, ack, ag o rg.

Por ejemplo para el caso de RipGrep, tienes esta opción,

sk --ansi -i -c 'rg --color=always --line-number "{}"'

¿Y como hacerlo?

La cuestión es que leyendo lo que indicaba Huam, y como había resuelto la situación, decidí aplicar algo similar, con, por supuesto mis propias particularidades. Mas que nada para llegar a una configuración que fuera óptima para mi flujo de trabajo y no sobrecargara en exceso el propmpt.

La configuración en su sitio

Me he acostumbrado a que la configuración siempre se encuentre donde la busco que es, básicamente, en ~/.config/zsh, en el caso de Zsh. Por tanto allí ha ido a parar zshrc. Pero dado que zsh lee del archivo que está en el directorio de inicio, he creado un enlace blando para esto.

Las rutas

El primer paso ha sido configurar las rutas, tanto el «$PATH», como la ruta que donde se encuentra la configuración de Zsh.

El historial

Por otro lado he configurado el historial, que es una pieza fundamental para ahorrarme trabajo, con algunas opciones personales como el número de líneas y comandos que tiene que guardar, o que no guarde duplicados.

El historial lo he dejado en el directorio de inicio, aunque al principio lo había movido al mismo directorio de la configuración me he dado cuenta que no era la mejor idea.

La configuración, la estoy gestionando con chezmoi, como te conté en un episodio anterior del podcast, y claro, esto termina en mis dotfiles, y puede ser que algo que no deba vaya a parar allí también. Así que para evitar problemas lo he excluido de mi sincronización.

Los complementos

Que no utilice Oh-My-Zsh, no implica que no añada complementos, y es que determinadas funcionalidades como el resaltado de sintaxis las sugerencias y los autocompletados me resultan muy productivos, y esto es lo que he hecho. He dejado los siguientes,

Y por supuesto, mis propios complementos que puedes encontrar en mis dotfiles

Las herramientas de Rust

Y por último las herramientas de Rust que te he comentado anteriormente.

Conclusión

La configuración la puedes encontrar en zsh dentro de mis dotfiles, donde además encontrarás las instrucciones para instalarlo. No tanto para que tu también lo instales, sino, mas bien para que veas exactamente los pasos que he seguido.

Tengo que confesarte, que en el momento de reinistalar Zsh y volver a utilizarlo, he tenido esa sensación que tienes cuando, por ejemplo, andas con una piedra en el zapato y la quitas. Es esa sensación justo la que he experimentado en mi regreso a Zsh, de donde probablemente no debería haber salido… Cosas de las probaturas.


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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *