zsh Cheatsheet

5.9

Atajos, trucos y keybindings esenciales de zsh para tu terminal

Español: 2026-03-29

zsh es la shell predeterminada en macOS y está ganando terreno serio en Linux, y con razón — toma todo lo que hace bash y agrega autocompletado más inteligente, mejor globbing y un ecosistema de plugins que puede convertir tu terminal en algo genuinamente agradable de usar. Si has estado usando zsh sin saberlo (gracias, macOS Catalina), has estado conduciendo un auto deportivo en primera marcha.

El verdadero poder de zsh vive en su editor de línea. Esas combinaciones de Ctrl y Alt no son aleatorias — vienen de la edición estilo Emacs, que es el modo predeterminado. Cada vez que presionas Ctrl-a para saltar al inicio de una línea, estás usando la misma combinación que los usuarios de Emacs han usado desde los años 70. También puedes cambiar al modo vi si eso te va más, pero empieza con los predeterminados. Son sorprendentemente buenos una vez que los internalizas.

Este cheatsheet se enfoca en lo que te hará más rápido de inmediato: navegación de línea para que dejes de usar las teclas de flecha, trucos de historial que te ahorran reescribir comandos, patrones de globbing que dejan que zsh encuentre archivos por ti, y suficiente conocimiento de oh-my-zsh para configurar un entorno productivo sin ahogarte en opciones. Nos saltamos el manual de 400 páginas y nos quedamos con lo que rinde frutos a diario.

Navegación de Línea

Estos funcionan en el modo Emacs predeterminado (que es el que estás usando a menos que hayas cambiado explícitamente a vi). Graba estos en tu memoria muscular y tus manos nunca abandonarán la fila principal.

Navegación de Línea
Ctrl-a
Saltar al inicio de la línea
Ctrl-e
Saltar al final de la línea
Alt-f
Avanzar una palabra
Alt-b
Retroceder una palabra
Ctrl-f
Avanzar un carácter
Ctrl-b
Retroceder un carácter
Ctrl-w
Eliminar la palabra antes del cursor
Alt-d
Eliminar la palabra después del cursor
Ctrl-k
Cortar desde el cursor hasta el final de la línea
Ctrl-u
Cortar desde el cursor hasta el inicio de la línea
Ctrl-y
Pegar (yank) el último texto cortado
Ctrl-t
Intercambiar los dos caracteres antes del cursor
Ctrl-l
Limpiar la pantalla (mantiene la línea actual)
Ctrl-_
Deshacer la última edición

Historial

Tu historial de shell es una mina de oro. zsh guarda miles de comandos por defecto, y estos atajos te ayudan a buscarlos eficientemente en lugar de presionar la flecha arriba 47 veces.

Historial
Ctrl-r
Búsqueda inversa en el historial (escribe para filtrar)
Ctrl-s
Búsqueda hacia adelante en el historial
Ctrl-p
Comando anterior (igual que flecha arriba)
Ctrl-n
Siguiente comando (igual que flecha abajo)
!!
Repetir el último comando completo
sudo !!
Re-ejecutar el último comando con sudo (salvavidas)
!$
Insertar el último argumento del comando anterior
!^
Insertar el primer argumento del comando anterior
!*
Insertar todos los argumentos del comando anterior
!<string>
Ejecutar el comando más reciente que comience con <string>
!<n>
Ejecutar el comando número <n> del historial
history
Mostrar historial reciente de comandos
history -10
Mostrar los últimos 10 comandos
fc
Abrir el último comando en tu $EDITOR para editarlo

Globbing

Aquí es donde zsh deja a bash en el polvo. El globbing de zsh es tan potente que puede reemplazar find para la mayoría de las búsquedas de archivos del día a día. Sin pipes, sin subshells, solo patrones.

Globbing
*
Coincidir con cualquier cadena en el directorio actual
**/*
Coincidir archivos recursivamente en todos los subdirectorios
?
Coincidir con cualquier carácter individual
[abc]
Coincidir con cualquiera de los caracteres listados
[a-z]
Coincidir con cualquier carácter en el rango
[^abc]
Coincidir con cualquier carácter que NO esté en la lista
*.{js,ts}
Coincidir archivos que terminen en .js o .ts (expansión de llaves)
**/*.py
Encontrar todos los archivos Python recursivamente
*(.)
Coincidir solo archivos regulares (no directorios)
*(/)
Coincidir solo directorios
*(@)
Coincidir solo enlaces simbólicos
*(m-7)
Archivos modificados en los últimos 7 días
*(Lk+100)
Archivos mayores de 100 KB
*(om[1,5])
Los 5 archivos modificados más recientemente

Aliases

Los aliases son cómo haces que zsh se sienta tuyo. Aquí están los patrones que vale la pena conocer — los aliases específicos dependen de ti, pero estas formas desbloquean la mayor productividad.

Aliases
alias ll="ls -lah"
Alias simple de comando
alias -g G="| grep"
Alias global — funciona en cualquier parte del comando (ls G foo)
alias -g L="| less"
Alias global para canalizar a less
alias -g NE="2>/dev/null"
Alias global para suprimir errores
alias -s py=nvim
Alias de sufijo — escribir archivo.py lo abre en nvim
alias -s json=jq .
Alias de sufijo — escribir datos.json lo formatea con formato legible
alias -s md=glow
Alias de sufijo — renderizar archivos markdown en el terminal
unalias <name>
Eliminar un alias
alias
Listar todos los aliases activos
which <command>
Mostrar a qué resuelve un comando o alias

Key Bindings

El editor de línea de zsh (zle) es totalmente personalizable. Puedes revincular cualquier tecla a cualquier acción, y hay cientos de widgets integrados para elegir.

Key Bindings
bindkey
Listar todas las vinculaciones de teclas actuales
bindkey -e
Usar vinculaciones de teclas Emacs (el predeterminado)
bindkey -v
Cambiar a vinculaciones de teclas vi
bindkey "^X^E" edit-command-line
Vincular Ctrl-x Ctrl-e para editar línea actual en $EDITOR
bindkey "^[[A" history-search-backward
Flecha arriba busca historial que coincida con la entrada actual
bindkey "^[[B" history-search-forward
Flecha abajo busca historial que coincida con la entrada actual
bindkey "\e." insert-last-word
Alt-. inserta la última palabra del comando anterior
bindkey -l
Listar keymaps disponibles
zle -la
Listar todos los widgets zle disponibles

Modo Vi

Si eres usuario de vim/nvim, el modo vi hace que zsh se sienta como en casa. Tienes modo normal, modo insert y la mayoría de los movimientos que ya conoces.

Modo Vi
bindkey -v
Habilitar modo vi
Esc
Cambiar a modo normal
i
Entrar en modo insert
a
Entrar en modo insert después del cursor
0
Saltar al inicio de la línea (modo normal)
$
Saltar al final de la línea (modo normal)
w / b
Avanzar / retroceder por palabra (modo normal)
dd
Eliminar la línea completa
dw
Eliminar desde el cursor hasta el final de la palabra
ci"
Cambiar dentro de comillas (y otros objetos de texto)
v
Entrar en modo visual para seleccionar texto
/
Buscar en el historial de comandos (modo normal)

oh-my-zsh Esenciales

oh-my-zsh es el framework de zsh más popular, y se lo ha ganado. Pero con más de 300 plugins, es fácil inflar tu configuración. Aquí están los plugins y patrones que realmente vale la pena cargar.

Configuración de oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Instalar oh-my-zsh
plugins=(git z fzf)
Habilitar plugins en ~/.zshrc (lista separada por espacios)
ZSH_THEME="robbyrussell"
Configurar tu tema en ~/.zshrc
omz update
Actualizar oh-my-zsh a la última versión
omz plugin list
Mostrar todos los plugins disponibles
omz theme list
Mostrar todos los temas disponibles
source ~/.zshrc
Recargar tu configuración después de cambios
Plugins Recomendados
git
Agrega más de 100 aliases de git (gst, gco, gp, gl, etc.)
z
Saltar a directorios visitados frecuentemente por nombre parcial
fzf
Búsqueda difusa de archivos, historial y más con Ctrl-r / Ctrl-t
zsh-autosuggestions
Sugerencias estilo Fish basadas en tu historial (texto fantasma)
zsh-syntax-highlighting
Colorea tus comandos mientras escribes — rojo significa error
sudo
Presiona Esc dos veces para anteponer sudo al comando actual o anterior
copypath
Copiar la ruta del directorio actual al portapapeles
web-search
Buscar en Google/GitHub/Stack Overflow directamente desde el terminal

Consejos

Agrega setopt AUTO_CD a tu ~/.zshrc y podrás navegar directorios solo escribiendo la ruta — sin necesidad de cd. Escribe .. para subir un directorio, ~/projects para ir al home. Una vez que te acostumbres, escribir cd se siente como pulsaciones desperdiciadas.

El plugin zsh-autosuggestions es posiblemente el mayor impulso de productividad que puedes agregar. Muestra predicciones de texto fantasma mientras escribes basadas en tu historial. Presiona la tecla de flecha derecha para aceptar toda la sugerencia, o Alt-f para aceptar solo la siguiente palabra. Instálalo y pregúntate cómo vivías sin él.

Usa Ctrl-x Ctrl-e (después de vincularlo con autoload -z edit-command-line && zle -N edit-command-line && bindkey '^X^E' edit-command-line) para abrir la línea de comandos actual en tu $EDITOR. Comandos largos con pipes y bucles son mucho más fáciles de componer en nvim que en una sola línea de terminal.

Configura tu historial correctamente. Agrega estos a ~/.zshrc y nunca perderás un comando: HISTSIZE=50000, SAVEHIST=50000, setopt SHARE_HISTORY (sincronizar entre sesiones), setopt HIST_IGNORE_DUPS (omitir duplicados consecutivos), setopt HIST_IGNORE_SPACE (prefijar con espacio para mantenerlo fuera del historial — útil para comandos con secretos).

El globbing recursivo de zsh (**/*) es lo suficientemente potente para reemplazar el uso básico de find. ¿Quieres todos los archivos TypeScript? ls **/*.ts. ¿Quieres eliminar todos los archivos .DS_Store? rm -f **/.DS_Store. Es más rápido de escribir y más fácil de recordar que find . -name "*.ts".

Si las combinaciones con la tecla Alt no funcionan en tu terminal (común en macOS), ve a las preferencias de tu terminal y habilita "Usar Option como tecla Meta." En iTerm2 está en Profiles > Keys. En Terminal.app, está en Settings > Profiles > Keyboard. Sin esto, Alt-f, Alt-b y Alt-d están muertos al llegar.

Los aliases de sufijo son una función subestimada de zsh. Agrega alias -s py=python3 a tu ~/.zshrc y podrás ejecutar un script de Python solo escribiendo su nombre: script.py en lugar de python3 script.py. Funciona para cualquier extensión — mapea .json a jq ., .md a tu visor de markdown, .log a less.

Related Tools