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
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
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
: <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>
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.