Enchulame la terminal - Mac
Publicado en 2020-05-03
Actualizado en 2020-05-03
Última actualización hace más de 365 días
Con licencia bajo MIT
tutorial
bash
terminal
Como usuario de Mac OS, disfruto trabajar con la terminal y me parece una herramienta especialmente poderosa. Por lo tanto, pasé bastante tiempo personalizándolo y aquí está mi guía definitiva para la personalización de terminales.
Primero pensé que solo crearía una publicación corta con algunos de los ajustes que me gustan. Pero tenía tantas cosas que quería mostrar que esto comenzó a convertirse en una publicación considerablemente larga. Así que he decidido publicarlo ahora, con tantos consejos como pueda escribir, y lo actualizaré con nuevos consejos y trucos.
Mi terminal
Instalaciones recomendadas
- iTerm2
- Nerd fonts - Hack Bold
- zsh
- zsh extensions:
- Powerlevel10k
- lsd: The next gen ls command
- ccat: Colorizing
cat
- lolcat
- Neofetch: A command-line system information tool written in bash 3.2+
Comencemos entonces a configurar todas las herramientas que vamos a necesitar.
Prerrequsitos
- En primer lugar, debe instalar iTerm2.
- Luego instalar brew.
- Ahora instale oh-my-zsh, abra iTerm2 y pegue el siguiente comando:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Luego de tener este par de cosas instaladas entremos mas en materia.
Fuentes parcheadas
Quiero comenzar a hablar sobre las fuentes parcheadas, ya que muchas de las personalizaciones que explicaré más adelante pueden depender de ellas. Las fuentes parcheadas consisten en fuentes regulares a las que se han agregado algunos símbolos adicionales. De esa manera, puede mostrar iconos especiales (como el icono de su sistema operativo) o agregar nuevas formas a tu prompt.
El proyecto más exitoso es nerd-fonts, que incluye muchas de las fuentes más utilizadas y favorita de este proyecto es Hack Bold
Nerd fonts
Nerd Fonts es un proyecto que parchea fuentes dirigidas por desarrolladores con una gran cantidad de glifos (iconos). Específicamente para agregar una gran cantidad de glifos adicionales de ‘fuentes icónicas’ populares como Font Awesome, Devicons, Octicons y otras.
Entonces para instalar estas fuentes en tu Mac OS puedes usar brew:
brew tap homebrew/cask-fonts
brew cask install font-hack-nerd-font
He visto que algunas veces no instala las fuentes con cask, aqui hay otra opcion:
brew install --cask font-hack-nerd-font
Ahora, si busca en la carpeta en la que acaba de instalarlo, verá que aparece allí. ls ~/Library/Fonts
Configura tu terminal
Una vez que haya descargado Nerd Fonts, puede configurar su terminal para usarlo. Configure iTerm2 para usar la fuente yendo a:
iTerm2 -> Preferences -> Profiles -> Text -> Font -> Change Font
Seleccione la fuente Hack Regular Nerd Font y ajuste el tamaño si lo desea. También marque la casilla Usar una fuente diferente para texto que no sea ASCII y seleccione la fuente nuevamente. Debería mostrar la nueva fuente e iconos en la solicitud.
No te preocupes si no vez un cambio significativo en tu terminal, esto nos va a dar la partida para los siguientes pasos.
Colorear el terminal
En el camino hacia la terminal definitiva, no hay nada que mejore su aspecto más que personalizar su esquema de color, por lo que este será nuestro punto de partida. Al buscar en Internet, podrá encontrar muchos temas, pero la forma más fácil de aplicarlos es usar Gogh
Esta herramienta no requiere instalación y le permite elegir sus colores favoritos de una larga lista de diferentes esquemas preconstruidos.
Simplemente copie y pegue el comando:
bash -c "$(curl -sLo- https://git.io/vQgMr)"
Luego de seleccionar algun tema, este se instalara y estará disponible para seleccionarlo en tu terminal.
iTerm2 -> Preferences -> Profiles -> Colors -> Color Presets
LSD, LOLcat y ccat
Algunas de las siguientes herramientas para lograr que se vean mejor necesita que tu iterm2 tenga un contraste minimo.
lsd está muy inspirado en el proyecto de súper colores pero con algunas pequeñas diferencias. Por ejemplo, está escrito en RUST y no en ruby, lo que lo hace mucho más rápido.
Es necesario instalar las fuentes parcheadas de powerline nerd-font y/o font-awesome.
Para instalar LSD solo debes usar brew y ejecutar esta linea en tu terminal:
brew install lsd
lolcat 🤣️ ¡Obtiene arcoiris y unicornios en todas partes! Esta herramienta aparece comúnmente utilizada junto con Neofetch, agregando un efecto de arco iris impresionante a tu prompt.
Para instalar LOLcat solo debes usar brew y ejecutar esta linea en tu terminal:
brew install lolcat
Para verificar que te instalo y funciona correctamente puedes correr en la terminal
ls | lolcat
ccat
Es el cat
colorante. Funciona de manera similar a cat pero muestra contenido con resaltado de sintaxis.
Para instalar ccat solo debes usar brew y ejecutar esta linea en tu terminal:
brew install ccat
Personalizar el bash prompt
En caso de que haya instalado una fuente parcheada como se describió anteriormente, ahora podrá usar cualquier tipo de símbolos para construir su prompt. Estas fuentes incluyen muchos símbolos powerline que le permitiran personalizar completamente su terminal sin tener que instalar ningún complemento externo.
Powerlevel10k
Es una rápida reimplementación de POWERLEVEL9K con incluso algunas características adicionales. Incluso mantiene los mismos nombres de variables, por lo que no necesitará cambiar su configuración si viene de POWERLEVEL9k.
Una cosa que me encanta de POWERLEVEL10K es que, si aún no tiene configuración, cuando la inicie por primera vez, le mostrará una guía que le preguntará sus preferencias. Durante este proceso, muestra varios ejemplos, por lo que es mucho más fácil de personalizar.
Para instalarlo en Mac tenemos dos caminos, el primero puede ser usando brew o el segundo que sera el que usaremos es con Oh My Zsh
, pega la siguente linea en tu terminal.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
Ahora deberas indicarle a zsh cual sera el tema a usar, para eso edita el archivo ~/.zshrc
, puedes usar cualquier editor de tu preferencia y buscar la propiedad del tema y cambiarlo por ZSH_THEME="powerlevel10k/powerlevel10k
Debemos recargar este archivo para ver los cambios en nuestra terminal.
source ~/.zshrc
Asistente de configuración
Escribe p10k configure
para acceder al asistente de configuración incorporado directamente desde tu terminal.
Al final del wizard tendras una terminal mas personalizada y te sentiras muy feliz :)
Vamos ahora a continuar agregando mas detalles de alto glamour a nuestra terminal.
Algunas alias
Algunos de los comandos que ya ha instalado, de hecho, admiten resaltado de color, por ejemplo: ls, grep y diff. En caso de que desee que estos comandos tengan siempre la opción de color habilitada, puede escribir alias en su archivo de configuración de terminal (.bashrc
/.zshrc
) para forzarlos.
alias l='ls -l'
alias la='ls -a'
alias lla='ls -la'
alias lt='ls --tree'
alias cat=ccat
Personalizaciones de Zsh
Zsh es un shell mucho más configurable con toneladas de complementos y temas que harán que su terminal se vea increíble e incluso mejorará su flujo de trabajo. Para este shell, las posibilidades de personalización son casi ilimitadas, por lo que ahora simplemente explicaré la configuración que uso.
Una diferencia clave de Zsh es que no viene con configuraciones preconfiguradas como otras conchas como bash o fish, por lo que sugeriría copiar algunas de mis configuraciones como punto de partida, particularmente si lo está instalando por primera vez.
Configurar combinaciones de teclas - keybindings
Una de las primeras cosas que noté rápidamente al usar Zsh es que muchas de las teclas y atajos a los que estaba acostumbrado, viniendo de bash, no funcionarían en absoluto o provocarían comportamientos inesperados. Incluso las teclas HOME
y END
no funcionaron. Así que aquí tienes toda la configuración de combinación de teclas que uso:
bindkey '^[[2~' overwrite-mode
bindkey '^[[3~' delete-char
bindkey '^[[H' beginning-of-line
bindkey '^[[1~' beginning-of-line
bindkey '^[[F' end-of-line
bindkey '^[[4~' end-of-line
bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word
bindkey '^[[3;5~' kill-word
bindkey '^[[5~' beginning-of-buffer-or-history
bindkey '^[[6~' end-of-buffer-or-history
Complementos útiles
- Autosuggestions Sugiere comandos a medida que escribe según el historial y las finalizaciones.
- Syntax highlighting Este paquete proporciona resaltado de sintaxis para el shell Zsh. Permite resaltar comandos mientras se escriben en un indicador de Zsh en un terminal interactivo. Esto ayuda a revisar los comandos antes de ejecutarlos, particularmente para detectar errores de sintaxis.
Con esto hemos terminado de enchular nuestra terminal. ¡Espero que esto haya sido útil y/o te haya hecho aprender algo nuevo!