Cuaderno de GNUtas

Dos pequeños ejemplos «sinápticos» de Org Mode

Si para Emacs cualquier cosa es un archivo de texto, para el Org Mode de Emacs cualquier archivo es susceptible de relacionarse con otros documentos por cuantas vías de comunicación se nos ocurran. Esta cualidad, que podríamos llamar «sinaptica», convierte nuestro entramado de trabajos, notas, escritos y demás en un grán árbol de árboles por donde podemos trepar a nuestro antojo. Las posibilidades son incontables, pero aquí me limitaré a un par de ejemplillos que me resultan (al menos a mí) tremendamente útiles. A saber.

Incluir un enlace en un documento de Org al título-encabezado de otro documento de Org (o del mismo documento)

Imaginemos que estamos en el documento1.org y queremos introducir en cierto lugar de éste un enlace a un encabezado de documento2.org. Nos da exactamente igual que dicho encabezado sea de primer, segundo, tercer nivel o cualquier otro inferior. Lo importante es escribir correctamente el título del encabezado, respetando también las mayúsculas y minúsculas. La sintaxis, para escribirlo mediante la forma «laboriosa», vendría a ser la típica de un enlace en Org:

[[<ruta hacia>/documento2.org::*Título del encabezado a enlazar][descripción del enlace]]

Si el encabezado está en el mismo documento donde queremos indicar el enlace, hacemos lo mismo, sólo que nos ahorramos ruta y/o nombre de archivo y los dobles dos puntos :: antes del asterisco:

[[*Título del encabezado a enlazar][descripción del enlace]]

Y, por supuesto, podemos ahorrarnos la forma laboriosa si introducimos el enlace mediante el típico atajo de Org Mode para gestionar los enlaces: C-c C-l

Convertir sub-árbol Org en texto de correo electrónico con org-mime

Ésta funcionalidad me encanta. Antes de explicarla, sin embargo, asumo que ya se tienen configurados Gnus y Bbdb en Emacs para enviar mensajes (y recibirlos / leerlos) con alguna cuenta de correo electrónico1. Y también que tenemos instalada la extensión org-mime.el (que sirve para exportar un archivo Org como texto HTML de correo electrónico) y, por último, que hemos incluído en nuestro archivo de inicio de Emacs el correspondiente:

(require 'org-mime)

Con todo eso, imaginemos que estamos en nuestro documento Org y queremos mandar un sub-árbol por correo electrónico, o crear un nuevo sub-árbol a tal efecto. Hay muchos escenarios posibles, pero todos coinciden en el ahorro que supone evitar abrir un cliente de correo electrónico o incluso el propio búfer de Gnus en Emacs. Simplemente, convertimos parte de nuestro flujo de trabajo en un correo, convenientemente exportado a formato HTML, lo que viene de perlas para enviar (o reutilizar) tablas, bloques de código, listas con viñetas, notas al pie y demás.

Uno de esos escenarios posibles podría ser:

* TODO Enviar comentarios pendientes por correo a Fulano Mengánez

** Correo para Mengánez

Querido Fulano:
bla, bla, bla...

Para convertir nuestro sub-árbol en un correo electrónico, seguiremos estos dos sencillos pasos:

  1. Creamos un nuevo búfer para el súb-árbol que queremos exportar a texto de correo electrónico: con el cursor en cualquier parte dentro de ese súb-árbol, tecleamos la secuencia C-c C-x b. Se nos abrirá una nueva ventana con el sub-árbol «aislado» en su propio búfer.
  2. Nos transladamos a ese nuevo búfer y tecleamos:
M-x org-mime-org-buffer-htmlize

Tras esto, automáticamente se abrirá la ventana de redactar mail de Gnus, con todo nuestro sub-árbol convertido a HTML y listo para enviarlo por correo al destinatario que queramos.

Naturalmente, podemos crear un atajo de teclas desde nuestro ~/.emacs a fin de simplificar el segundo paso. Yo lo tengo con la tecla Alt-Meta seguida del asterisco:

(global-set-key (kbd "M-*") 'org-mime-org-buffer-htmlize)

Publicado: 19/10/2018

Última actualización: 19/10/2018


Índice general

Acerca de...

Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.

Notas:

1

Aquí un estupendo tutorial sobre cómo configurar Gnus con una cuenta de Gmail.

© Juan Manuel Macías
Creado con esmero en
GNU Emacs