Pregunta:
Al generar la agenda de hoy en Org-Mode ( Cc aa
) se abren los archivos en org-agenda-files
. No quiero que Emacs abra estos búferes adicionales.
¿Existe una manera fácil de decirle a Emacs que no abra estos búferes? (o lo que es lo mismo, ¿cerrarlos automáticamente si no estaban abiertos antes de llamar a la agenda?).
ACTUALIZAR:
Esta es una versión más compacta de la solución proporcionada por @lawlist:
(require 'dash)
(defun my-org-keep-quiet (orig-fun &rest args)
(let ((buffers-pre (-filter #'get-file-buffer (org-agenda-files))))
(apply orig-fun args)
(let* ((buffers-post (-filter #'get-file-buffer (org-agenda-files)))
(buffers-new (-difference buffers-post buffers-pre)))
(mapcar (lambda (file) (kill-buffer (get-file-buffer file))) buffers-new))))
(advice-add 'org-agenda-list :around #'my-org-keep-quiet)
(advice-add 'org-search-view :around #'my-org-keep-quiet)
(advice-add 'org-tags-view :around #'my-org-keep-quiet)
Lamentablemente, esto todavía no es perfecto, ya que ahora al hacer clic en un evento en la agenda no se abre el archivo de organización correspondiente.
Respuesta:
Quiere org-agenda-exit
, convenientemente enlazado ax de forma predeterminada en la vista de agenda
Como `org-agenda-Quit ', pero elimina los búferes creados por la agenda. Los búferes de organización visitados directamente por el usuario no se tocarán.
Encontré esto usando describe-mode
.