Puedo calcular fechas así:
#+NAME: mytbl
| # | [2014-12-14 Sun] | 30 | <2015-01-13 Tue> |
#+TBLFM: $4=$2+$3;D
pero lo que quiero hacer es hacer que esa fecha aparezca como una fecha de agenda, algo así como:
DEADLINE: $remote(mytbl,@1$4)
Pero eso no funciona. No puedo encontrar ninguna sintaxis, incluso una macro, que permita cualquier cosa que no sea una fecha literal para una entrada en la agenda.
¿Algunas ideas?
org-mode
org-agenda
jtgd
fuente
fuente
org-mode
y que no se puede cambiar fácilmente (en mi opinión), incluso hay un nota en la cadena de documentación para la variable de marca de tiempo que aconseja no ajustar con ella.org-time-stamp-formats
es una variable definida enorg.el
. Su valor es("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>")
Esta variable puede ser arriesgada si se usa como una variable local de archivo. Documentación: formatos para losformat-time-string
que se utilizan las marcas de tiempo. No se recomienda cambiar esta constante. Ver también, el formato de sello de tiempo personalizado: orgmode.org/manual/Custom-time-format.html#Custom-time-formatRespuestas:
Prueba esto:
Calcule la fecha límite en una hoja de cálculo, también conocida como tabla .
Cree una nueva tabla 1x1 que haga referencia a la fecha límite calculada desde la primera tabla usando la
remote(NAME-OR-ID,REF)
función.Pase la tabla de fecha límite 1x1 como variable a través del encabezado
:var name=value
alSRC
bloque con nombre , por ejemplo, el bloque de código set_deadline elisp a continuación.Evalúe el uso del bloque SRC C-c C-cy la fecha límite se agregará al archivo de modo de organización debajo de un
#+RESULTS:
bloque.Agregar el
:results raw
encabezado al bloque de código obliga a que la salida en formato org-mode se reconozca como una declaración de organización regular.Como una ventaja adicional, el uso de bloques src con nombre también fomenta la reutilización de código a través de llamadas a funciones en línea.
Como antes, evalúe cada función en línea usando C-c C-cy se agregará una nueva fecha límite al archivo de modo org.
Espero que haya ayudado!
Nota: Este código se probó utilizando las siguientes versiones de emacs y org-mode.
fuente
replace
no se comporta como se esperaba, intente actualizar elraw
encabezado con eldrawer
encabezado. Después de cambiar, todo funcionó como se esperaba. Espero que ayude! ¡Gracias por hacer su pregunta y su código de elisp!drawer
cosa funciona perfecta ahora. Hay tanto que aprender sobre el modo org. Es bueno tener magos como tú. En cuanto a sus otros ejemplos publicados, probé uno y funcionaraw
sin agregar. Pero mi aplicación funciona, así que estoy feliz.Muchas gracias Melioratus, ¡qué excelente respuesta! Es sorprendente cómo usaste los diversos mecanismos del modo Org para hacer esto. La parte más importante de esto para mí fue
:results raw
qué texto resultante se volvería a analizar en la creación de la agenda. Esa fue la clave.Cuando vi cómo podría expandir esto para manejar muchas fechas, me pregunté si no podría simplemente hacer los cálculos de fechas en elisp. Todavía soy muy nuevo en elisp, pero pirateé un poco y se me ocurrió esto.
Mi tarea es calcular la fecha en que se agotan mis medicamentos agregando 30 días al día en que empiezo el biberón. Lo que hice fue esto.
En mi .emacs escribí algunas funciones:
Traté de mantener estas funciones genéricas y no centradas en los medicamentos para su reutilización. Puede haber mejores formas de hacer esto, como dije que soy un novato.
Luego en mi archivo .org hago esto:
Agradable y ordenado, una línea por instancia. Hacer Cc Cc en el bloque genera el título y el PLAZO con la fecha y se muestra perfectamente en la agenda. Funciona bien y estoy contento con los resultados. Gracias nuevamente por el consejo para usted y la lista de abogados.
ps Lo único que no funciona es el
replace
. Siempre se agrega al bloque # + RESULTADOS, así que tengo que eliminarlo antes de generarlo. Es menor pero no entiendo por qué.fuente