Итак, я наконец решил открыть руководство по emacs lisp и выяснить это сам. Я написал этот фрагмент кода, который, кажется, работает просто отлично! :)
;; Save the org-agenda for display with conky
(defadvice org-todo-list (after saveorgagenda activate)
"save this output to my todo file"
(get-buffer-create "todo")
(with-current-buffer "todo"
(set-buffer-modified-p nil))
(kill-buffer "todo")
(write-file "~/todo"))
РЕДАКТИРОВАТЬ ПРИЧИНЫ:
1) Без kill-buffer defadvice создает новый буфер todo при каждом выполнении org-todo-list. Это становится довольно раздражающим.
2) Без функции get-buffer-create, kill-buffers сбоит в первый раз, так как в это время нет буфера с именем todo.
3) Без set-buffer-Modified-P, функция будет постоянно сообщать вам «todo buffer модифицирован. Действительно убить его? (Y или n)», что на самом деле победило бы всю цель.
Уф! Я так счастлив, что я действительно потратил время и усилия, чтобы понять это! : D