DEV Community

Johnnatan Sandoval Cardona
Johnnatan Sandoval Cardona

Posted on

Explorando org-babel en emacs

Soy usuario de GNU/Emacs desde el año 2005. A pesar de tanto tiempo, no me considero un experto. No me he querido meter de
lleno con ELisp, por ejemplo, así que las configuraciones que hago a emacs, las hago basándome en consejos de internet. Y, de un tiempo para acá, empecé a usar doom emacs, que me entrega una "distribución" pre-configurada y lista para usarse.

No obstante, cada tanto pruebo nuevas características que, aunque las
conozco desde hace mucho tiempo, no me había animado a usarlas. Una de
las más recientes es org-babel.

org-mode me permite introducir bloques de código por aquí y por allá. Es una forma de programación literata. Para ello, puedo definir bloques que empiezan con begin_src y terminan con end_src. Cualquier modo que emacs soporte, lo puedo definir de la siguiente
manera:

#+begin_src python
print("Hola mundo")
#+end_src
Enter fullscreen mode Exit fullscreen mode

Al exportar, puedo obtener coloreado de sintaxis del lenguaje. No obstante, hay algo más que puedo hacer y es ejecutar el bloque de código con C-c C-c. Y lo puedo hacer con cualesquier lenguaje que org soporte, siempre que tenga acceso al intérprete.

Algo que he hecho en los últimos días, es almacenar instrucciones de la línea de comandos para pruebas que hago:

#+begin_src sh :results output>
http get https://google.com
#+end_src
Enter fullscreen mode Exit fullscreen mode

De esa forma, puedo repetir continuamente un comando haciendo pequeñas modificaciones y ver la salida en el mismo buffer de emacs. Me gusta porque no soy muy fan de postman, y de esta forma no lo necesito. Puedo usar httpie o curl, donde me siento más cómodo.

Veamos el resultado de lo siguiente:

#+begin_src sh :results output
curl google.com
#+end_src
Enter fullscreen mode Exit fullscreen mode
: <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
: <TITLE>301 Moved</TITLE></HEAD><BODY>
: <H1>301 Moved</H1>
: The document has moved
: <A HREF="http://www.google.com/">here</A>.
: </BODY></HTML>
Enter fullscreen mode Exit fullscreen mode

Puedo copiar, puedo pegar o hacer lo que quiera. En este momento, no he probado la posibilidad de comunicar un bloque con otro, o de manejar sesiones. Tal vez lo haga más adelante. Por ahora, este es un paso más en emacs que me gusta.

Top comments (0)