404 - Snippets o el arte de repetir sin escribir
Escucha este podcast, utilices Windows, Linux o MacOs, escribas con LibreOffice o programes con Visual Studio Code o NeoVim. Seguro lo aprovechas
En general, el ser humano es muy de repetir. Cuando algo nos nos funciona lo utilizamos. Y es algo mas que lógico. También te tengo que decir, que en ocasiones, también repetimos aquello que no nos funciona, y de ahí el famoso dicho de el ser humano es el único animal que tropieza tres veces con la misma piedra. Pero aún podemos ir un paso mas allá, y es que si algo te funciona, automatízalo. De esta forma, conseguirás que el resultado sea siempre el mismo. Es cierto, que hay determinadas cuestiones que son mas complejas de automatizar, pero en este caso puedes utilizar snippets, de distintas formas. Y es precisamente, esto de lo que te quiero hablar en el episodio del podcast de hoy, de los snippets, o el arte de repetir sin escribir.
Snippets o el arte de repetir sin escribir
¿Que son los snippets?
Como no quiero calentarme mucho la cabeza con esto de los snippets, me voy a apoyar en la Wikipedia, para su definición,
Snippet es un término del idioma inglés utilizado en programación para referirse a pequeñas partes reusables de código fuente, código máquina o texto. Comúnmente son definidas como unidades o métodos funcionales que se pueden integrar fácilmente en módulos mucho más grandes, aportando funcionalidad. También se utiliza la palabra para referirse a la práctica de minimizar el uso de código repetido que es común en muchas funciones, por medio del uso de un solo método que pueda ser reutilizado
Si bien, en la definición de la Wikipedia, hace referencia a la programación, yo lo hago extensible a cualquier texto que sea susceptible de repetir. Y no solo texto, también pueden ser hasta emojis.
¿Porque hablar de los snippets?
Probablemente te estés preguntando como se me ha ocurrido traer este tema al podcast. Pues bien, todo tiene su explicación, y se refiere básicamente a Neovim. Como viene siendo habitual en mi caso, voy añadiendo complementos en Neovim con la configuración básica, y posteriormente voy ampliando esta configuración.
En este caso, he estado configurando luasnip, un complemento para el uso de snippets. Y es aquí, donde he caído que no había hablado hasta el momento en el podcast. Te quiero indicar, que estos snippets, no los utilizo únicamente con Neovim, ni los utilizo únicamente para desarrollar, sino que los utilizo con diferentes aplicaciones y para cualquier ámbito.
Por ejemplo, para los guiones del podcast, o para los artículos de atareao.es utilizo los snippets, que me ayudan a poner la entradilla o a determinados elementos del mismo.
LibreOffice
Contra todo pronóstico, empezaré por Writer de LibreOffice. Esta editor de texto, tiene una fantástica herramienta que se llama AutoTexto, y lo que te permite es introducir snippets o pequeñas porciones de texto o de lo que tu quieras.
¿Como funciona?
La verdad es que es bastante sencillo. Para crear un nuevo snippet de texto, simplemente tienes que escribir el texto que consideres, darle formato y a continuación utilizar el atajo de teclado Ctrl+F3
. Una vez hecho esto, seleccionas nuevo
y ya lo tienes. Esto te crea una especie de atajo de teclado, aunque no exactamente como tu la conoces.
La cuestión es que tu escribes esa especie de atajo de teclado, por ejemplo la letra m, y posteriormente pulsas F3
, reemplaza esa m
por tu snippet
.
Esto es fantástico, porque puedes crear respuestas o documentos enlatados, como informes, etc, para operaciones que realices de forma habitual.
Espanso
La siguiente herramienta de la que te quiero hablar es de espanso. Esta herramienta la comenté en el episodio 254 del podcast que titulé escribir mas com menos, espanso, y que además hacía referencia un podcast bastante anterior, el 50, en el que te hablaba a su vez de los expansores de texto.
Espanso es una herramienta multiplataforma que te permite reemplazar una palabra clave por un texto. Atención, es multiplataforma. Se trata de una aplicación implementada en Rust, aunque algunas de las capas, están desarrolladas en Objective C o C++, dependiendo del sistema operativo.
¿Como funciona?
El funcionamiento es realmente sencillo. Con espanso, puedes definir tantas palabras clave como precises, y estas palabras clave son reemplazadas al instante por el snippet que tu requieras. Ya sea un snippet de código, una frase o un párrafo. Lo cual, de nuevo es realmente fantástico, porque te permite crear respuestas enlatadas.
En mi caso particular, lo estoy utilizando, además de para las respuestas enlatadas, para reemplazar por algunos emojis o grupos de emojis, como risas, etc. Cosas que tiene uno.
Visual Studio Code
La siguiente de las herramientas, y esta mas centrada ya en el código, aunque lo cierto, es que yo la estuve utilizando durante mucho tiempo para escribir utilizando markdown los artículos de atareao.es, es precisamente Visual Studio Code.
Por supuesto, y como no podía ser de otra forma, Visual Studio Code, al igual que la mayoría de editores de código, te permite, o mejor dicho, te facilita el uso de snippets. Esto es básico, y algo realmente demandado por los desarrolladores.
En este caso los snippets aparecen junto con otras sugerencias conforme vas escribiendo a modo de autocompletado, lo cual tiene todo el sentido del mundo.
Esta característica viene por defecto en Visual Studio Code, pero además puedes instalar conjuntos de snippets directamente desde el marketplace de Visual Studio Code.
Pero además, y como no podía ser de otra forma, puedes crear tus propios snippets, de nuevo, algo fundamental, para dejar tu impronta, ya sea en la programación o en la redacción de tus artículos utilizando markdown.
En este caso, la sintaxis que se utiliza para describir los snippet es algo que se ha extendido bastante, tal y como verás a continuación.
Además tienes una serie de variables, que van desde el año hasta el directorio en el que te encuentras pasando por el contenido del portapapeles, realmente interesante.
¿Como funciona?
El funcionamiento es bastante sencillo. Puedes utilizar cada uno de los snippets que hayas definido o los que vienen por defecto, utilizando el prefijo prefix
. Así, al escribir es prefix
, lo puedes reemplazar por el código que quieras. De hecho, estos snippets aparecen directamente en el autocompletado.
Neovim
No quiero terminar este pequeño conjunto de herramientas que permiten snippets, sin citar a mi tan amado Neovim, y es que como no podía ser de otra forma, Neovim, también permite el uso de snippets.
En mi caso, para hacer uso de los snippets, he instalado dos complementos. El primero de ellos es luasnip, que te permite hacer uso de los snippets. Pero no solo esto, sino que además te permite utilizarlos exactamente en el mismo formato que utilizas en Visual Studio Code. De ahí lo que indicaba anteriormente.
Además te permite utilizar su propio formato, esta vez en lua. Aquí pierdes la compatibilidad con Visual Studio Code y con otros editores, pero granas en posibilidades.
Pero no solo esto, sino que además estoy utilizando los friendly snippets. Que son una absolutamente interesante colección de snippets para diferentes lenguajes de programación, que te ayudará para escribir código de forma mas eficiente y rápida. Decirte que tienes mas de una veintena de lenguajes de programación, con lo que puedes estar tranquilo que el que tu utilizas estará aquí, sin lugar a dudas.
Decirte también, que estos complemento, está en su correspondiente variante también para Visual Studio Code, con lo que lo tienes fácil.
La ventaja que le encuentro a utilizar este pseudo lenguaje para definir los snippets, es que los puedes utilizar en todos los editores, con lo que es mas que recomendable.
PyCharm y otros
Creo recordar, pero aquí quedo completamente en manos de mi memoria, que también puedes utilizar estos snippets en otros editores como PyCharm.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.