Org-Mode: Capturas rápidas con org-capture

Introducción

Las plantillas para org-capture ahorran mucho tiempo a la hora de agregar nuevas entradas, yo las suelo usar para registrar rápidamente tareas, citas, notas para el blog y otra información.

Para que veas su funcionalidad te muestro un ejemplo de su utilidad, más adelante de explicaré como añadirlo a tu fichero de configuración.

Iniciando el modo captura

Supongamos que necesita añadir una nueva tarea personal, con la combinación de teclas C-c c inicio el menú para capturas

Como puedes ver en la captura, tengo generedas una serie de plantillas dependiendo si es una tarea, cita, un nuevo contacto, etc, como quiero añadir una nueva tarea personal pulso la tecla t

Escribo la tarea a realizar

Me gusta saber cuanto tiempo me lleva cada tarea así que he añadido una pequeña función para saber aproximadamente el tiempo que me va a llevar realizar la tarea, si no te gusta la puedes quitar de la configuración de tu fichero init.el

Después de añadir la información que creas oportuna para tu nueva tarea, tenemos tres opciones

  • C-c C-c guarda la tarea en el fichero reubicar, este fichero lo suelo utilizar para guardar tareas, notas, etc, para su posterior revisión y archivado en el fichero y rama correspondiente.

  • C-c C-w guarda directamente la tarea en el fichero y rama que indiquemos.

  • C-c C-k cancela la tare

C-c C-w

Si pulsamos la combinación de teclas C-c C-w (refile) y empiezo a teclear por ejemplo las letras tare irán apareciendo todas las ramas de los ficheros (que formen a parte de mi agenda) donde encuentre esa palabra, en mi caso podria guardar la tarea tanto en el fichero personal.org como en trabajo.org.

Solo tenemos que seleccionar el fichero personal.org para guardar la tarea en la rama correspondiente

C-c C-c

Si por el contaría queremos guardar la tarea en el fichero reubicar para revisarla más tarde, pulsaremos la combinación de teclas C-c C-c , veamos el contenido de ese fichero, de entre los buffers que tenemos abiertos

lo seleccionamos y lo abrimos

Para ubicar la tarea en su rama y fichero correspondiente pulsamos C-c C-w y repetimos el proceso que vimos en el paso anterior

Esto que he aplicado a una tarea lo puedes aplicar tambien a notas que en ese momento no sabes muy bien donde ubicar, tareas, citas, contactos, etc.

Configuración

Una vez vista su utilizad necesitas configurar tu fichero init.d para añadir el paquete org-capture y definir las funciones de captura y plantillas. Yo utilizo use-package y un fichero org para mi configuración, si no es tu caso, copia las funciones dev-var. Puedes observar como defino C-c c para iniciar la captura

:bind ("C-c c" . org-capture)

Si no necesitas hacer una valoración del tiempo estimado que te llevan realizar las tareas puedes suprimir

:PROPERTIES:
:Effort: %^{effort|1:00|0:05|0:15|0:30|2:00|4:00}
:END:

Si tampoco usas org-contacts también puedes suprimir la función my/org-contacts-template

file+headline "~/.personal/agenda/reubicar.org" "Fechas" si no existe, crea en el fichero reubicar.org, una rama llamada Fechas y guarda allí las notas capturadas con la tecla f, así lo mismo para Nota, Blog, Tareas, etc.

Creo que el código es bastante fácil de seguir, modifícalo según tus necesidades

(use-package org-capture
  :ensure nil
  :after org
  :bind ("C-c c" . org-capture)
  :preface
  (defvar my/org-basic-task-template "* TODO %^{Tareas}
   :PROPERTIES:
   :Effort: %^{effort|1:00|0:05|0:15|0:30|2:00|4:00}
   :END:
    Capturado %<%Y-%m-%d %H:%M>" "Plantilla básica de tareas.")

  (defvar my/org-contacts-template "* %(org-contacts-template-name)
   :PROPERTIES:
   :EMAIL: %(org-contacts-template-email)
   :PHONE: %^{123-456-789}
   :HOUSE: %^{123-456-789}
   :ALIAS: %^{nuko}
   :NICKNAME: %^{Carlos M}
   :IGNORE:
   :NOTE: %^{NOTA}
   :ADDRESS: %^{Calle Ejemplo 1 2A, 28320, Pinto, Madrid, España}
   :BIRTHDAY: %^{yyyy-mm-dd}
   :END:" "Plantilla para org-contacts.")
   :custom
  (org-capture-templates
   `(("c" "Contactos" entry (file+headline "~/.personal/agenda/contactos.org" "Amigos"),
      my/org-contacts-template
      :empty-lines 1)

     ("f" "Fecha" entry (file+headline "~/.personal/agenda/reubicar.org" "Fechas"),
      my/org-basic-task-template
      :empty-lines 1)

      ("n" "Nota" entry (file+headline "~/.personal/agenda/reubicar.org" "Nota"),
      my/org-basic-task-template
      :empty-lines 1)

      ("i" "Cita" entry (file "~/.personal/agenda/diario.org" ),
       "* cita con %? \n%T"
      :empty-lines 1)

      ("b" "Blog" entry (file+headline "~/.personal/agenda/reubicar.org" "Blog"),
      my/org-basic-task-template
      :empty-lines 1)

     ("t" "Tarea" entry (file+headline "~/.personal/agenda/reubicar.org" "Tareas"),
      my/org-basic-task-template
      :empty-lines 1))))

Espero que te haya gustado, pasa un buen día…🐧