Prueba las potentes funciones de autocompletado, coloreado e historial de Fish Shell
¡Hola! A todos los que acaban de sumergirse en el mundo de la creación web y a los usuarios de nivel intermedio que buscan hacer su codificación diaria un poco más cómoda. ¿No creen que la "terminal" que usan todos los días podría ser más práctica? 🤔
Aunque el primer shell para muchos es "Bash", hoy les presentaré un shell muy inteligente y fácil de usar llamado "Fish Shell". Fish es la abreviatura de "Friendly Interactive SHell" (Shell Interactivo Amigable) y, como su nombre indica, es muy amable con nosotros los usuarios.
En este artículo, de entre los muchos encantos de Fish, nos centraremos en tres en particular: su potente función de autocompletado, su intuitivo coloreado de sintaxis y su inteligente función de historial, para que puedan experimentar lo increíble que es. ¡No se necesita ninguna configuración complicada! Con solo copiar y pegar el código de este artículo, deberían sentir un "¡Vaya, qué práctico!". ¡Vamos, exploremos juntos el mundo de Fish y hagamos que nuestras operaciones en la terminal sean drásticamente más eficientes! 🚀
🐠 ¿Ya no necesitas memorizar comandos? La superpotente función de "autocompletado" de Fish
El mayor estrés al operar en la terminal es la molestia de tener que recordar o buscar comandos cada vez, preguntándote "¿cuál era ese comando?" o "¿cómo se deletreaba esa opción?". La función de autocompletado de Fish hace que esas preocupaciones sean cosa del pasado.
Cuando empiezas a escribir un comando, te sugiere el comando más probable en un color gris claro, basándose en tu historial y el contexto. Si la sugerencia es correcta, solo tienes que pulsar → (flecha derecha) o Ctrl + F para confirmar la entrada. ¡Ahorra una cantidad sorprendente de tecleo!
Autocompletar subcomandos
Por ejemplo, la herramienta de control de versiones `git` tiene muchos subcomandos (`commit`, `push`, `pull`, etc.). Con solo escribir `git` y pulsar la barra espaciadora, Fish te mostrará una lista de los subcomandos disponibles.
$ git
(Al escribir lo anterior, se mostrará una lista con 'add', 'blame', 'branch', 'checkout', etc.)
Autocompletar opciones (flags)
También es fácil olvidar las opciones de los comandos. Pero con Fish, no hay problema. Si escribes un guion `-`, te mostrará una lista de las opciones disponibles para ese comando, con sus descripciones. Casi nunca más necesitarás usar el comando `man`.
$ ls -
(Al escribir lo anterior, se mostrarán opciones como '-a' (all), '-l' (long format), '-t' (sort by time) junto con sus descripciones)
Autocompletar rutas de archivos y directorios
Por supuesto, su función para autocompletar rutas de archivos y directorios también es muy potente. Cuando empiezas a escribir una ruta con un comando como `cd` y pulsas la tecla Tab, te muestra una lista de candidatos. A medida que escribes más letras, la lista de candidatos se va acotando. ¡Esto también evita errores de tipeo, matando dos pájaros de un tiro!
$ cd D/P/
(Por ejemplo, si quieres navegar a 'Documents/Projects/', Fish lo autocompletará de forma inteligente aunque lo escribas con mayúsculas como arriba)
🎨 ¡Entiende con solo mirar! El intuitivo "coloreado de sintaxis"
Una pantalla negra solo con letras blancas es un poco sosa y puede dificultar la comprensión. Fish, por defecto, colorea el texto según la sintaxis. Esto permite juzgar de un vistazo si un comando es correcto o el tipo de archivo.
Los comandos válidos son azules
Los comandos ejecutables que existen en el sistema se muestran en azul. En el momento en que lo escribes, puedes confirmar visualmente "Ah, este comando se puede usar", lo que da mucha tranquilidad.
$ ls -l
('ls' se mostrará en color azul)
Los comandos inválidos son rojos
Por otro lado, los comandos que no existen o los errores tipográficos se muestran en rojo. Puedes darte cuenta del error antes de ejecutarlo, lo que evita fallos innecesarios. ¡Esto es realmente útil!
$ lss -l
(El error tipográfico 'lss' en lugar de 'ls' se mostrará en rojo)
Coloreado por tipo de archivo y directorio
La salida de los comandos también es colorida. Por ejemplo, al usar el comando `ls`, los directorios se muestran en azul negrita, los archivos ejecutables en verde, los archivos comprimidos en rojo, etc., coloreados según su tipo. Encontrarás lo que buscas de inmediato.
$ ls
(Los archivos y carpetas en el directorio actual se mostrarán en diferentes colores)
🕰️ ¡Busca en el pasado mientras escribes! La función de "historial" incremental
"Quiero volver a usar ese comando largo que ejecuté hace un momento..." En esos momentos, ¿pulsas repetidamente la tecla ↑ (flecha arriba)? Con Fish, puedes recuperar el historial de una manera mucho más inteligente.
La búsqueda en el historial de Fish se basa en la "búsqueda incremental". Con solo escribir una parte del comando, se sugiere la entrada más reciente del historial que contiene esa cadena de texto.
Buscar en el historial mientras escribes
Por ejemplo, supongamos que has ejecutado el comando `git commit` varias veces en el pasado. Intenta escribir `git` en la línea de comandos y luego pulsa la tecla ↑. En lugar de mostrar simplemente el comando anterior, buscará hacia atrás solo en el historial de comandos que comienzan con `git`.
$ git
(Al escribir lo anterior y presionar ↑, se mostrarán los comandos anteriores que comienzan con 'git')
Buscar en todo el historial por palabra clave
Si quieres buscar en un historial más antiguo o por una palabra clave en medio de un comando, `history search` es muy útil. Muestra una lista de los comandos del historial que contienen la palabra clave especificada.
$ history search "commit"
(Se mostrará una lista de comandos del historial que incluyen la cadena "commit")
🙋♀️ La "función de ayuda" para cuando estás atascado
Fish es amigable incluso cuando necesitas ayuda. Si no sabes cómo usar un comando, prueba el comando `help`.
Sorprendentemente, Fish abrirá automáticamente la página de ayuda (página man) de muchos comandos en tu navegador web predeterminado. Incluso si no te gusta leer páginas de ayuda en inglés en una pantalla negra, puedes leerlas detenidamente en tu navegador habitual.
$ help ls
(La página del manual para el comando 'ls' se abrirá en una nueva pestaña de tu navegador web)
⚠️ Un punto a tener en cuenta al usar Fish
Hasta ahora he presentado muchos de los puntos buenos de Fish, pero hay una cosa con la que debes tener cuidado. Se trata de la "diferencia de sintaxis con Bash".
Muchos de los scripts de shell y ejemplos de configuración que se encuentran en el mundo todavía están escritos para Bash. Por lo tanto, si copias y pegas un comando que encontraste en un artículo en línea directamente en Fish, es posible que no funcione.
Por ejemplo, el comando para establecer una variable de entorno. En Bash se usa `export`, pero en Fish se usa `set`.
Configuración de variables de entorno en Bash
# Esto dará un error en Fish
$ export MY_VARIABLE="hello"
Configuración de variables de entorno en Fish
En Fish, las variables se definen con la opción '-x' o '--export'.
# Esta es la forma correcta en Fish
$ set -x MY_VARIABLE "hello"
Al principio puede que te resulte un poco confuso, pero la sintaxis de Fish es más simple y consistente, por lo que una vez que te acostumbres, probablemente la encontrarás más fácil de entender. Si quieres ejecutar un script de Bash, también puedes hacerlo explícitamente con Bash, así: `bash -c "contenido del script"`.
Resumen
¿Qué te ha parecido? Esto fue solo una pequeña parte de las potentes funciones que tiene Fish shell, pero espero que hayas podido sentir una pizca de su conveniencia.
- La función de autocompletado que reduce drásticamente el tecleo
- El coloreado de sintaxis que previene errores antes de que ocurran
- La función de historial que te permite encontrar el comando que quieres usar de inmediato
Todas estas funciones están disponibles desde el momento en que lo instalas, sin necesidad de configuración adicional. Solo con eliminar estas pequeñas tensiones diarias, tu disfrute y concentración en la codificación deberían aumentar drásticamente.
¡Aprovecha esta oportunidad para instalar Fish shell y comenzar tu cómoda vida en la terminal!