Pregunta:
Al redactar mi programa semanal, me resulta algo discordante tener que cambiar al búfer de agenda en el otro marco y reconstruir, solo para ver cómo se alinean las cosas. Agregar org-agenda-redo
a after-save-hook
no parece funcionar. Tener la llamada de gancho (org-agenda-redo t)
, que debería reconstruir TODOS los búferes de la agenda, tampoco parece funcionar.
Aquí hay una muestra del código que estoy usando:
(defun org-agenda-redo-all ()
"Rebuild all agenda buffers"
(org-agenda-redo t))
(add-hook 'org-mode-hook
(lambda()
(add-hook 'after-save-hook 'org-agenda-redo-all nil 'make-it-local)))
Según el búfer *Messages*
, org-agenda-redo
parece llamarse:
Saving file /home/mkaito/notes/agenda.org...
Wrote /home/mkaito/notes/agenda.org
Rebuilding agenda buffer...done
Pero el búfer de agenda en el otro marco no se actualiza.
Respuesta:
org-agenda-redo
no reconstruye todos los búferes de la agenda, sino que reconstruye todas las vistas en el búfer actual. De la documentación Ch f org-agenda-redo
RET
(org-agenda-redo y TODO opcional)
Reconstruir posiblemente TODAS las vistas de la agenda en el búfer actual.
Deberá recorrer manualmente todos los búferes de la agenda y reconstruirlos. A continuación se muestra uno de esos comandos
(defun my-redo-all-agenda-buffers ()
(interactive)
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(when (derived-mode-p 'org-agenda-mode)
(org-agenda-redo t)))))