Personalizar la terminal en MacOS Catalina con ZSH, Zim y Powerlevel10k

Con el reciente lanzamiento de MacOS Catalina, el interprete de comandos o shell usado por defecto en nuestra aplicación de terminal en MacOS es ZSH (Z shell), en lugar de BASH.

ZSH es una shell más avanzada que nos proporciona funcionalidades extra como el autocompletado, corrector, expansión de directorios, navegación rápida por la historia y muchas otras características.

Pero si con las funciones que trae por defecto no te fuera suficiente, es posible, de una manera fácil ampliar su funcionalidad con plugins y su apariencia con temas.

Existen muchos frameworks para mejorar Zsh, quizá el más conocido sea Oh My Zsh, por la cantidad de plugins, temas y la gran comunidad que existe, pero todo esto tiene un precio, y es el rendimiento. A mayor número de plugins carguemos, mayor sera el tiempo de arranque de nuestra terminal y no queremos eso.

Por eso vamos a usar Zim, un framework que incluye los plugins Zsh más usados por defecto y Powerlevel10k, un theme que nos permite una personalización total de nuestra shell, pero sin dejar de lado el rendimiento.

Instalación de Zim y Powerlevel10k

El proceso de instalación de Zim no puede ser más sencillo, copia la siguiente línea de código y pegalá en tu terminal.

curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh

Para comprobar que la instalación se completó correctamente, debés ver un mensaje como este:

) Git is installed.
) Using Zsh version 5.8
) ZIM_HOME not set, using the default one.
) Zsh is your default shell.
) Downloaded the Zim script to /Users/idev/.zim/zimfw.zsh
) Copied Zim template to /Users/idev/.zimrc
) Copied Zim template to /Users/idev/.zshrc
) Copied Zim template to /Users/idev/.zshenv
) Copied Zim template to /Users/idev/.zlogin
) Installed modules.
All done. Enjoy your Zsh IMproved! Restart your terminal for changes to take effect.

Vamos ahora con la instalación del theme Powerlevel10k, para ello vamos a usar el instalador de modulos que trae Zim.

  1. Abrimos el fichero .zimrc con tu editor favorito vim ~/.zimrc
  2. Vamos hasta el final del fichero y añadimos lo siguiente

    # Init My configuration
    zmodule romkatv/powerlevel10k
    # End My configuration
  3. Guardamos, salimos del editor, y ejecutamos el siguiente comando para instalar el theme Powerlevel10k que acabamos de añadir al fichero .zimrc zimfw install
  4. Si todo fue correctamente veremos un mensaje como el siguiente:

    ) powerlevel10k: Installed
    Done with install. Restart your terminal for any changes to take effect.
  5. Cuando reiniciemos el terminal o abramos una nueva pestaña, se cargará el configurador del theme Powerlevel10, seguiremos los pasos y ya tendremos nuestra terminal lista para usar.

Funcionalidades extra con Zim

Ahora que ya tenemos Zim instalado, veamos que módulos se han instalado y que podemos hacer con ellos.

git: alias y funciones para Git

Estos son solo algunos ejemplos, pero hay muchos más alias que puedes usar.

  • Gws muestra el estado en un formato resumido
  • Gp hacer push al origen remoto
  • Gfm fetch y put del origen remoto a la rama actual
  • Gcm hace un commit con el mensaje indicado como argumento
  • Gbc crea un rama

completion: completado de comandos

Por ejemplo, si usas composer para instalar dependencias en tus proyectos PHP, ejecutando composer + tab, veras que aparecen las opciones disponibles de este comando, como require, install, etc..

Aquí puedes encontrar un listado completo de los comandos para los que hay completado.

zsh-autosuggestions: sugerencias

Este otro módulo nos va sugerir según vamos escribiendo en nuestro terminal basado en nuestra historia. Muy util, para evitar tener que escribir lo mismo una y otra vez.

zsh-syntax-highlighting: resaltado

Con este módulo conseguimos que nuestra terminal resalte los comandos, de modo que cuando hacemos un ls Documentos, se resalta en otro color el ls

Estos son algunos de los módulos que instalar por defecto Zim, pero puedes ver todos los módulos disponibles en Zim en su Github.

Remplazando la aplicación Terminal de MacOS con iTerm2
Up Next

Remplazando la aplicación Terminal de MacOS con iTerm2

Remplazando la aplicación Terminal de MacOS con iTerm2