Ocho plugins de Zsh con pocas estrellas en GitHub resuelven problemas muy concretos de la terminal: editar la línea como en un editor de texto, mandar a la papelera lo que se borra con rm, arrancar la shell más deprisa o copiar al portapapeles igual en Linux, macOS y WSL. Seis de ellos proceden de un artículo de Technical Savvy publicado en Medium; los otros dos se han añadido después de revisar varios candidatos mantenidos que encajan en el mismo uso diario.
Las claves de los 8 plugins de Zsh poco conocidos en 20 segundos
- Seis salen de un artículo de Technical Savvy y dos se suman tras comprobarlos en GitHub.
- Cubren edición de la línea, borrado seguro, arranque, completado, portapapeles y Git.
- zsh-safe-rm y zsh-bat llevan desde noviembre de 2024 sin commits.
- forgit exige fzf 0.60 o superior, más nuevo que el de Ubuntu 24.04.
Cada plugin se ha contrastado con su repositorio: el README, el método de instalación, las dependencias, la licencia, la fecha del último commit y las estrellas, estas últimas consultadas el 05/11/2026. Además, siete de los ocho se han cargado en una Ubuntu 24.04 con zsh 5.9 para comprobar que los comandos citados existen y hacen lo que se describe. Los atajos de teclado y el ratón no se pueden probar en un contenedor sin pantalla, así que esa parte se apoya solo en la documentación. Quien todavía esté decidiendo qué intérprete usar puede empezar por esta comparativa de shells para Linux.
| Plugin | Para qué | Dependencia | Instalación |
|---|---|---|---|
| zsh-safe-rm | rm y del a la papelera | shell-safe-rm (submódulo) | antidote, Oh My Zsh, manual |
| zsh-you-should-use | Recordar alias existentes | Ninguna (zsh 5.1+) | Oh My Zsh, zplug, antigen, AUR |
| zsh-edit-select | Seleccionar y editar como en un editor | Configurar el terminal; binarios propios | Oh My Zsh, zinit, sheldon, manual |
| zsh-bat | cat y man con resaltado | bat (batcat en Debian/Ubuntu) | Oh My Zsh |
| clipboard | pbcopy, pbpaste y clip en todas partes | xclip, xsel o wl-clipboard en Linux | Oh My Zsh, zplug, zcomet, prezto |
| forgit | Git interactivo | fzf 0.60.0 o superior | zinit, Oh My Zsh, Homebrew, AUR |
| ez-compinit | Retrasar compinit | Ninguna | antidote, manual |
| zsh-smartcache | Cachear eval de arranque | Ninguna | Cualquier gestor o source |
Editar la línea de comandos con más red de seguridad
zsh-safe-rm: rm que pasa por la papelera
Es un envoltorio para shell-safe-rm, el script de Kael Zhang que mueve ficheros a la papelera en lugar de eliminarlos. Al cargarse define alias para rm, del y safe-rm que apuntan a ese script, y unsafe-rm como atajo a command rm. Su autor recomienda acostumbrarse a del para no confiarse en máquinas donde el plugin no está. Para saltarse la protección basta con \rm o command rm.
antidote install mattmc3/zsh-safe-rm
# o sin gestor (shell-safe-rm es un submódulo, de ahí --recursive):
git clone --recursive --depth 1 https://github.com/mattmc3/zsh-safe-rm ~/.zplugins/zsh-safe-rm
source ~/.zplugins/zsh-safe-rm/zsh-safe-rm.plugin.zsh
del informe-viejo.log # en Linux acaba en ~/.local/share/Trash/files
\rm temporal.txt # borrado realLenguaje del código: PHP (php)
En la prueba, del y rm movieron los ficheros a esa carpeta y \rm los eliminó. Hay matices que conviene conocer. El último commit es del 25/11/2024 (31 estrellas, licencia MIT), y el submódulo apunta a una versión de shell-safe-rm de febrero de 2018, aunque ese proyecto sigue recibiendo cambios. El script mueve con mv y no crea los ficheros .trashinfo del estándar de freedesktop, así que el gestor de archivos no sabrá devolverlos a su ruta original. Si la carpeta de papelera no existe, pregunta antes de crearla. Y como todo alias, no actúa dentro de scripts ni en sudo rm.
zsh-you-should-use: el recordatorio de los alias que ya existen
Muchos administradores acumulan alias en su .zshrc y luego siguen tecleando el comando largo. Este plugin avisa cada vez que se escribe algo para lo que ya hay un alias, incluidos los alias globales y los de Git. No requiere configuración: el mensaje aparece antes de ejecutar el comando, o después si se exporta YSU_MESSAGE_POSITION="after". Con YSU_HARDCORE=1 la shell se niega a ejecutar el comando largo si existe una alternativa.
git clone https://github.com/MichaelAquilina/zsh-you-should-use.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/you-should-use
# en .zshrc: plugins=(... you-should-use)
alias ll='ls -l'
ls -l /var/log
# Found existing alias for "ls -l". You should use: "ll"Lenguaje del código: PHP (php)
Ese aviso se reprodujo tal cual en una zsh interactiva del contenedor. Tiene 1.939 estrellas, licencia GPL-3.0 y su último commit es del 26/05/2026. Oficialmente soporta zsh 5.1 en adelante y también se instala con zplug, antigen, zgen o desde el AUR de Arch Linux.
zsh-edit-select: seleccionar y editar como en un editor
Lleva a la línea de comandos los gestos de cualquier editor: Shift y las flechas para seleccionar, Ctrl+A para seleccionarlo todo, Ctrl+C, Ctrl+X y Ctrl+V para copiar, cortar y pegar, Ctrl+Z y Ctrl+Shift+Z para deshacer y rehacer, y escribir encima de una selección para sustituirla. También reconoce el texto marcado con el ratón. En macOS usa Cmd en lugar de Ctrl, y funciona en Linux con X11 o Wayland y en WSL.
git clone --depth=1 https://github.com/Michael-Matta1/zsh-edit-select.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-edit-select
# o con zinit:
zinit ice depth"1"; zinit light Michael-Matta1/zsh-edit-select
edit-select config # asistente para ratón y atajosLenguaje del código: PHP (php)
El plugin solo funciona del todo si el emulador de terminal deja pasar esas combinaciones, y muchos las usan para sus pestañas o su propio portapapeles. El README trae la configuración para Kitty, Alacritty, WezTerm, Foot, Konsole, Ghostty, iTerm2, VS Code y Windows Terminal, y permite elegir entre copiar con Ctrl+Shift+C (Ctrl+C sigue interrumpiendo procesos) o al revés. También ofrece un instalador guiado que se lanza con bash <(curl …) y toca la configuración del terminal con copias de seguridad, aunque el propio autor recomienda la instalación manual en entornos muy personalizados. Otro detalle: en la primera carga descarga desde las releases de GitHub unos binarios propios para el portapapeles, con comprobación SHA-256. Por eso es el único de los ocho que no se cargó en la prueba. En GNOME, Cinnamon o Pantheon sobre Wayland necesita XWayland. Tiene 38 estrellas, licencia MIT y un último commit del 26/10/2026.
Salida legible, portapapeles y Git interactivo
zsh-bat: cat y man con colores
Sustituye cat por bat, que añade resaltado de sintaxis y números de línea, deja el cat original disponible como rcat y configura MANPAGER para que las páginas de manual salgan coloreadas. En Debian y Ubuntu el binario de bat se llama batcat y el plugin lo detecta solo. Sin bat instalado no hace nada.
sudo apt install bat
git clone https://github.com/fdellwing/zsh-bat.git $ZSH_CUSTOM/plugins/zsh-bat
# en .zshrc: plugins=(... zsh-bat)
cat /etc/nginx/nginx.conf # bat con resaltado
rcat /etc/hostname # el cat de siempre
man rsync # manual coloreadoLenguaje del código: PHP (php)
En el contenedor, cat quedó apuntando a /usr/bin/batcat y rcat a /usr/bin/cat. Cuando la salida no iba a una terminal, bat imprimió texto plano, de modo que las tuberías siguen funcionando. El proyecto tiene 75 estrellas y licencia MIT, pero su último commit es del 12/11/2024; es sencillo (dos alias y dos variables), aunque conviene saber que cambia MANPAGER para toda la sesión.
clipboard: pbcopy y pbpaste fuera del Mac
Quien alterna entre macOS y Linux echa de menos pbcopy y pbpaste. Este plugin los define como funciones en macOS, X11, Wayland, WSL 1 y 2, Cygwin y MSYS2, y añade clip, que copia si recibe datos por una tubería y muestra el portapapeles si no. En Linux recurre a xclip, xsel o wl-copy, así que hace falta uno de ellos; en WSL usa clip.exe.
cd ~/.oh-my-zsh/custom/plugins && git clone https://github.com/zpm-zsh/clipboard.git
# en .zshrc: plugins=(... clipboard)
ip -br addr | pbcopy
pbpaste | grep -c UP
echo "texto" | clip # copia
clip # muestra el contenidoLenguaje del código: PHP (php)
Con un servidor X virtual (Xvfb) y xclip, pbcopy y pbpaste funcionaron en la prueba. Además define una función open, que puede chocar con otro alias o comando del mismo nombre. En un servidor remoto sin entorno gráfico no hay portapapeles al que llegar. Licencia GPL-3.0, 49 estrellas y último commit del 11/09/2026, que añadió wl-clipboard como dependencia en sesiones Wayland.
forgit: Git interactivo con fzf
Es el más popular de los ocho (5.093 estrellas, licencia MIT, último commit del 24/10/2026), pero sigue fuera de las listas habituales. Convierte operaciones de Git en selectores interactivos sobre fzf: ga para elegir qué añadir, glo para recorrer el log con vista previa, gd para los diff, gcb para cambiar de rama o gi para generar un .gitignore, entre casi treinta comandos.
zinit load wfxr/forgit
# o: git clone https://github.com/wfxr/forgit.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/forgit
# o: brew install forgit
ga # selector de ficheros para git add
glo # log interactivoLenguaje del código: PHP (php)
Requiere fzf 0.60.0 o superior. Ubuntu 24.04 instala por apt la 0.44.1, y en la prueba forgit se negó a funcionar con el mensaje fzf version 0.60.0 or higher is required; hay que instalar fzf desde su proyecto. Sus alias cortos pueden coincidir con los del plugin git de Oh My Zsh: se cambian definiendo variables como forgit_add antes de cargarlo, o se desactivan con FORGIT_NO_ALIASES.
Arranque más rápido y completado sin sorpresas
ez-compinit: compinit cuando toca
El sistema de completado de Zsh se inicializa con compinit, que necesita el fpath completo. Muchos plugins, sin embargo, llaman antes a compdef, que solo existe tras compinit. ez-compinit envuelve esas funciones, guarda en cola las llamadas a compdef y ejecuta el compinit real al final del .zshrc. También incluye estilos de completado tomados de Oh My Zsh, Prezto y grml.
# primera línea de ~/.zsh_plugins.txt (antidote):
mattmc3/ez-compinit
# en .zshrc:
zstyle ':plugin:ez-compinit' 'compstyle' 'zshzoo'
compstyle -l # gremlin ohmy prez zshzooLenguaje del código: PHP (php)
Debe cargarse cerca del principio, antes de cualquier plugin que llame a compdef. En la prueba, un compdef escrito antes de que existiera el sistema de completado quedó registrado al llegar al prompt, y el volcado se guardó en ~/.cache/zsh/zcompdump. Su autor aclara que no hace falta para quien usa Oh My Zsh de forma normal, porque ese marco ya llama a compinit. Tiene 55 estrellas, licencia MIT y último commit del 11/01/2026.
zsh-smartcache: menos eval en cada arranque
Herramientas como rbenv, pyenv o direnv piden añadir eval "$(… init -)" al .zshrc, y cada una lanza un proceso al abrir la shell. zsh-smartcache guarda esa salida en disco, la compila con zcompile y en cada arranque la vuelve a generar en segundo plano: si cambia, actualiza la caché y avisa de que el cambio se aplicará en la siguiente sesión. También puede cachear completados.
# antes
eval "$(rbenv init -)"
# después
smartcache eval rbenv init -
# completados
smartcache comp rustup completions zshLenguaje del código: PHP (php)
Según el benchmark de su autor, hecho con hyperfine 'zsh -ic exit' en un Ryzen 3700X, rbenv init 1.2.0 pasa de unos 48 ms a unos 23,5 ms. Esa cifra no se ha reproducido aquí. Sí se comprobó que smartcache eval crea el fichero de caché y su versión compilada en ~/.cache/zsh-smartcache y que la variable exportada aparece en ambos arranques. El README no detalla instalación, pero se carga con cualquier gestor o con source. Tiene 59 estrellas, licencia MIT y último commit del 20/03/2026.
Cómo cargarlos sin ralentizar la shell
El orden importa más que el gestor. ez-compinit va el primero; zsh-smartcache, antes de las líneas que lo usan; y los plugins que definen alias (zsh-safe-rm, zsh-bat, forgit) después de cualquier marco que use los mismos nombres, porque en Zsh gana el último alias definido. Con antidote basta un fichero de texto:
# ~/.zsh_plugins.txt
mattmc3/ez-compinit
QuarticCat/zsh-smartcache
MichaelAquilina/zsh-you-should-use
Michael-Matta1/zsh-edit-select
fdellwing/zsh-bat
zpm-zsh/clipboard
wfxr/forgit
mattmc3/zsh-safe-rm
# medir antes y después de cada cambio
hyperfine 'zsh -ic exit'Lenguaje del código: PHP (php)
Con zinit, el equivalente es una línea zinit light usuario/repositorio por plugin en el mismo orden. Conviene añadirlos de uno en uno y medir el arranque tras cada paso, como se explica en esta guía sobre configuración moderna del terminal.
Preguntas frecuentes
¿Funcionan estos plugins con Oh My Zsh?
Sí. La mayoría documenta la instalación clonando el repositorio en $ZSH_CUSTOM/plugins y añadiéndolo a plugins=(...). ez-compinit es la excepción práctica: su autor indica que no hace falta con Oh My Zsh.
¿zsh-safe-rm sustituye a una copia de seguridad?
No. Mueve los ficheros a una carpeta de papelera mediante alias, que no actúan en scripts ni con sudo rm, y \rm o command rm se lo saltan.
¿Por qué forgit no funciona en Ubuntu 24.04?
Porque exige fzf 0.60.0 o superior y el paquete de Ubuntu 24.04 es la versión 0.44.1. Hay que instalar fzf desde el proyecto oficial.
¿Cómo se mide si la shell arranca más lenta con un plugin?
Con hyperfine 'zsh -ic exit', el método que usa el autor de zsh-smartcache, o con time zsh -i -c exit, antes y después de añadir cada plugin.
Fuentes:
- Technical Savvy, «5 Hidden-Gem Zsh Plugins You’re Probably Not Using» (Medium)
- github.com/mattmc3/zsh-safe-rm y github.com/kaelzhang/shell-safe-rm
- github.com/MichaelAquilina/zsh-you-should-use
- github.com/Michael-Matta1/zsh-edit-select
- github.com/fdellwing/zsh-bat
- github.com/zpm-zsh/clipboard
- github.com/wfxr/forgit
- github.com/mattmc3/ez-compinit
- github.com/QuarticCat/zsh-smartcache







