Mejores Plugins y Herramientas de Fish Shell (Oh My Fish, Fisher)

Una guía de los plugins, gestores de plugins y herramientas más útiles de Fish Shell, incluyendo Fisher, Tide, fzf.fish y otras extensiones que vale la pena instalar.

Mejores Plugins y Herramientas de Fish Shell (Oh My Fish, Fisher)

Fish ya hace bastante sin plugins. Autosugerencias, resaltado de sintaxis y completados de páginas man vienen integrados. Eso significa que el ecosistema de plugins es más pequeño que el de Zsh, pero más enfocado. Estás añadiendo herramientas específicas en lugar de parchear funcionalidades que faltan.

Llevo usando Fish a diario y he probado bastantes plugins. Aquí está lo que realmente mantengo instalado y recomiendo.

Si eres nuevo en Fish, empieza con mi guía de instalación para Ubuntu primero.

Gestores de plugins: Fisher vs Oh My Fish

Necesitas un gestor de plugins antes de poder instalar cualquier cosa. Hay dos opciones, pero la elección es sencilla.

Fisher (recomendado)

Fisher es un gestor de plugins ligero escrito completamente en Fish. Instala los plugins copiando funciones y completados directamente en tu directorio de configuración de Fish. Sin framework, sin sobrecarga al iniciar.

Instálalo:

curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher

Uso básico:

fisher install author/plugin    # instalar un plugin
fisher update                   # actualizar todos los plugins
fisher remove author/plugin     # eliminar un plugin
fisher list                     # listar plugins instalados

Fisher registra los plugins instalados en ~/.config/fish/fish_plugins. Puedes poner este archivo bajo control de versiones y ejecutar fisher update en una máquina nueva para recrear tu configuración.

Oh My Fish

Oh My Fish (OMF) es un framework similar a Oh My Zsh. Tiene su propio repositorio de paquetes con temas y plugins, y proporciona una herramienta de línea de comandos (omf) para gestionarlos.

Instálalo:

curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fish

Uso:

omf install plugin-name    # instalar un plugin
omf theme theme-name       # aplicar un tema
omf update                 # actualizar todo
omf list                   # listar paquetes instalados

La opinión honesta: Oh My Fish lleva un tiempo sin mantenimiento. El repositorio de GitHub tiene una advertencia al respecto. Algunos paquetes funcionan bien, otros están rotos. Yo no empezaría una instalación nueva de Fish con OMF hoy. Fisher tiene mantenimiento activo, es más rápido y puede incluso instalar plugins compatibles con OMF. Si aún quieres probarlo, tengo una guía completa de Oh My Fish.

Estado de Oh My Fish

La página de GitHub de Oh My Fish indica que lleva años sin mantenimiento y algunos paquetes están rotos. Para instalaciones nuevas, usa Fisher.

Plugins de prompt

Tide

Tide es el prompt nativo de Fish más popular. Renderiza de forma asíncrona (así que tu prompt nunca se ralentiza), tiene un asistente de configuración y muestra el estado de git, directorio actual, versiones de runtime y duración de comandos.

fisher install IlanCosman/tide@v6
tide configure

El asistente te guía por las opciones de estilo: powerline vs. plano, iconos vs. texto, una línea vs. dos líneas. El resultado se ve pulido sin ninguna configuración manual.

Tide necesita una Nerd Font para los iconos. Recomiendo MesloLGS NF, que es la que sugiere la documentación de Tide. Instala la fuente, configúrala en tu emulador de terminal, y listo.

Si quieres un prompt que funcione en Fish, Zsh y Bash, mira Starship con Fish Shell en su lugar. Tide es solo para Fish pero está más profundamente integrado con las funcionalidades de Fish.

Hydro

Hydro es un prompt minimalista hecho por el autor de Fisher. Muestra rama de git, duración de comandos y estado de salida con casi cero sobrecarga. Bueno si prefieres algo limpio y rápido antes que lleno de funcionalidades.

fisher install jorgebucaran/hydro

No necesita configuración. Simplemente funciona con valores predeterminados razonables.

Para una comparación completa de opciones de prompt de Fish incluyendo Tide, Hydro, Starship y Pure, revisa mi guía de temas y prompts de Fish Shell.

Plugins de búsqueda y navegación

fzf.fish

fzf.fish agrega búsqueda difusa a tu Fish shell usando fzf. Obtienes búsqueda interactiva para historial de comandos, rutas de archivos, git log, git status y procesos.

Instala fzf primero, luego el plugin:

# Instalar fzf (Ubuntu)
sudo apt install fzf

# O en macOS
brew install fzf

# Instalar el plugin de Fish
fisher install PatrickF1/fzf.fish

Atajos de teclado predeterminados:

  • Ctrl+R - buscar en el historial de comandos (reemplaza la búsqueda integrada de Fish con una mejor)
  • Ctrl+Alt+F - buscar rutas de archivos
  • Ctrl+Alt+L - buscar en git log
  • Ctrl+Alt+S - buscar en git status
  • Ctrl+Alt+P - buscar procesos en ejecución

Este es probablemente el plugin de Fish más útil que existe. Si no instalas nada más, instala este.

zoxide

Zoxide no es un plugin de Fish, es una herramienta independiente que reemplaza cd con una alternativa más inteligente. Aprende qué directorios visitas y te permite saltar a ellos con nombres parciales. Escribe z proj en lugar de cd ~/Documents/work/projects.

# Instalar
sudo apt install zoxide  # o: brew install zoxide

# Agregar a tu configuración de Fish
# En ~/.config/fish/config.fish:
zoxide init fish | source

Tengo una guía completa sobre zoxide que cubre la configuración y el uso. Funciona con Fish, Zsh y Bash.

Plugins de Git

fish-git-util

Si usas Tide o Hydro, la información de git ya está en tu prompt. Pero si quieres abreviaturas y helpers de git independientes, hay algunas opciones.

El enfoque más simple es definir tus propias abreviaturas:

# Agregar a ~/.config/fish/conf.d/git.fish
abbr -a gs git status
abbr -a ga git add
abbr -a gc git commit
abbr -a gp git push
abbr -a gl git log --oneline
abbr -a gco git checkout
abbr -a gb git branch
abbr -a gd git diff

Las abreviaturas se expanden cuando presionas espacio o enter, así que ves el comando completo en tu historial. Explico por qué esto importa en abreviaturas vs alias de Fish Shell.

Gestión de Node y versiones

nvm.fish

nvm.fish es un gestor de versiones de Node.js creado para Fish. Es más ligero que el nvm basado en Bash e inicia más rápido porque se carga de forma diferida. Tengo una guía detallada de NVM con Fish Shell que cubre la configuración y el uso.

fisher install jorgebucaran/nvm.fish

Uso:

nvm install 22       # instalar Node 22
nvm use 22          # cambiar a Node 22
nvm list            # listar versiones instaladas
nvm current         # mostrar versión activa

También lee archivos .nvmrc y .node-version automáticamente cuando entras en un directorio.

Otros plugins útiles

autopair.fish

autopair.fish cierra automáticamente corchetes, comillas y paréntesis mientras escribes. Presiona ( e inserta () con el cursor entre medias.

fisher install jorgebucaran/autopair.fish

Una pequeña mejora de calidad de vida.

sponge

sponge elimina automáticamente los comandos fallidos de tu historial de Fish. Si un comando sale con error, no contamina tu historial y autosugerencias.

fisher install meaningful-ooo/sponge

puffer-fish

puffer-fish expande .. a ../.. y ... a ../../.. mientras escribes. Presiona . dos veces y sigue añadiendo referencias al directorio padre.

fisher install nickeb96/puffer-fish

Mi configuración recomendada

Si estoy configurando Fish en una máquina nueva, esto es lo que instalo:

# Gestor de plugins
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher

# Prompt (elige uno)
fisher install IlanCosman/tide@v6
# O para cross-shell: instala Starship por separado

# Plugins imprescindibles
fisher install PatrickF1/fzf.fish
fisher install jorgebucaran/autopair.fish
fisher install meaningful-ooo/sponge
fisher install nickeb96/puffer-fish

Más zoxide instalado por separado. Eso me da un shell rápido y funcional con búsqueda difusa, navegación inteligente de directorios y un buen prompt. Toda la configuración lleva unos cinco minutos.

Comparación con plugins de Zsh

Si vienes de Zsh y te preguntas cuáles son los equivalentes:

Plugin/herramienta de ZshEquivalente en Fish
Oh My ZshFisher (gestor de plugins)
Powerlevel10kTide
zsh-autosuggestionsIntegrado en Fish
zsh-syntax-highlightingIntegrado en Fish
zsh-completionsIntegrado en Fish (análisis de páginas man)
fzf (integración Zsh)fzf.fish
zoxide (Zsh)zoxide (misma herramienta, init para Fish)
nvmnvm.fish

Tengo una comparación detallada de Fish vs Zsh y un artículo más amplio de Fish vs Bash vs Zsh si quieres más contexto sobre las diferencias. Para usuarios de Zsh, también tengo una lista de los mejores plugins de Oh My Zsh para comparar.