org-mode – Solicite confirmación antes de eliminar tareas repetidas en las vistas de la agenda de la organización

Pregunta:

Al personalizar org-agenda-confirm-kill , puedo obtener confirmación cuando elimino una tarea en una vista de agenda. Puedo configurar esto en t para pedir siempre confirmación (lo cual no quiero hacer, porque generalmente solo elimino una tarea en lugar de marcarlas como DONE ), o en un número n para que tenga que confirmar cuando un TODO vanos n o más líneas. Actualmente tengo este conjunto de la siguiente manera:

(setq org-agenda-confirm-kill 2)

Esto evitará que elimine accidentalmente un TODO con notas u otra información que no veo en la vista de agenda. Sin embargo, también me preocupa eliminar accidentalmente tareas repetidas. ¿Hay alguna forma de obtener confirmación en las vistas de la agenda antes de eliminar las tareas repetidas?

Respuesta:

Aconseje a org-agenda-kill que verifique org-get-repeat y pregunte si hay un repetidor. Utilice un consejo :before-while para que la ejecución se detenga si la función de consulta devuelve falso. Como estamos haciendo esto desde la agenda, primero tendremos que buscar e ir a la ubicación real para verificar el repetidor.

(defun org-agenda-repeating-p ()
  (let ((pos (get-text-property 0 'org-marker (thing-at-point 'line))))
    (save-window-excursion
      (org-goto-marker-or-bmk pos)
      (org-get-repeat))
    ))


(defun query-if-repeating (&rest args)
  (if (not (org-agenda-repeating-p))
      t
    (y-or-n-p "Entry repeats.  Kill?"))
  )

(advice-add 'org-agenda-kill :before-while 'query-if-repeating)

Leave a Comment

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

Scroll to Top

web tasarım