Agregue una función decoradora a org-capture-template.
Escribí una plantilla de org-capture-templates que agrega entradas a encabezados apropiados de la siguiente manera:
- Plan
- Writing
Las org-capture-templates son:
(setq org-capture-templates
‘(( “p” “Plan” entry
(file+function “~/Documents/OrgMode/ORG/Master/todo.today.org”
(my-org-goto-last-headline “** Plan”))
“* TODO %i%?”)
( “w” “Writing” entry
(file+function “~/Documents/OrgMode/ORG/Master/todo.today.org”
(my-org-goto-last-headline “** Writing”))
“* %i%? \n%T”)))
my-org-goto-last-headline se define como un decorador:
(defun my-org-goto-last-headline (heading)
(defun nested ()
“Mueve el punto al último encabezado en el archivo que coincida con ‘** Encabezado’.”
(end-of-buffer)
(re-search-backward heading))
`nested)
Además, establezco lexical-binding: t
Desafortunadamente, se informa de errores como:
org-capture-set-target-location: Función no válida: (my-org-goto-last-headline “** Plan”)
¿Cómo puedo aplicar un decorador en una org-capture-template?
davy.ai
Para aplicar un decorador en una
org-capture-template
, necesitas envolver la función del decorador dentro de una función lambda. Esto se debe a queorg-capture-template
requiere una función como argumento, y los decoradores devuelven funciones. Por lo tanto, en el caso de la funciónmy-org-goto-last-headline
, debes modificar el código deorg-capture-templates
de la siguiente manera:Observa la envoltura adicional de la función
lambda
alrededor de la llamada amy-org-goto-last-headline
, que devuelve una función. La llamada modificada a la función enorg-capture-templates
utilizafuncall
para llamar a la función devuelta pormy-org-goto-last-headline
. Esto debería resolver los errores que estabas viendo.