org-mode – ¿Cómo mostrar las tareas diarias en la agenda del día pero no en la agenda de la semana?

Pregunta:

Tengo algunas tareas en mi agenda que me gustaría completar todos los días, por ejemplo, SCHEDULED: <2016-04-04 Mon 16:30 +1d> .

Obviamente me gusta verlos en la agenda diaria, y eso funciona bien. Esto es lo que estoy usando:

(setq org-agenda-custom-commands
      `(
        ;; ...
        ("d" "Daily Action List"
             ((agenda ""
                      ((org-agenda-ndays 1)
                       (org-agenda-sorting-strategy
                        (quote ((agenda time-up priority-down tag-up))))
                       (org-deadline-warning-days 0)))))))

(defun orfu-agenda-day ()
  (interactive)
  (org-agenda nil "d"))

Sin embargo, cuando cambio a la vista semanal (con w ), las tareas diarias oscurecen todo, ya que ahora cada una de ellas se repite 7 veces.

¿Cómo puedo ocultar todas las tareas que tienen +1d en la vista semanal? Si ayuda, podría etiquetar los encabezados con los que están, por ejemplo :daily: y luego el problema se simplificaría para ocultar una sola etiqueta de la agenda semanal.

Respuesta:

Convenientemente, org-mode tiene una función para obtener solo la repetición de la marca de tiempo de una entrada: org-get-repeat . Solo tenemos que poner eso en una función apropiada para org-agenda-skip-function , es decir, debería probar si (org-get-repeat) es igual a "+ 1d" para cada título. SI es así, devuelva el siguiente título; de lo contrario, devuelva nil para no omitir.

(defun skip-daily-tasks () 
  (let ((next-headline (save-excursion (or (outline-next-heading) (point-max))))
        (headline (or (and (org-at-heading-p) (point))
                      (save-excursion (org-back-to-heading)))))
    (if (string= (org-get-repeat) "+1d")
        next-headline
      nil)))

(add-to-list 'org-agenda-custom-commands
             '("w" "Weekly"
               agenda ""
               ((org-agenda-span 'week)
                (org-agenda-skip-function 'skip-daily-tasks))
               ))

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım