我正在跑步
/usr/bin/emacs -l ~/.emacs -eval '(org-icalendar-export-agenda-files)' --batch
在cron工作中。
Orgmode将uuid
添加到议程文件中新待办事项的属性,但随后提示保存议程文件(仅当以批处理模式从命令行运行时)。
Save file /home/user/gtd/work.org? (y or n)
我的琐事是echo y | /usr/bin/emacs...
。但由于实际上有3个议程文件可能被修改,因此这不是一个好的解决方案。必须设置一些变量或导致org-icalendar-export-agenda-files
只保存它修改的文件的内容。
答案 0 :(得分:1)
使用defadvice
在一般 1 中不是一个好习惯,但是,如果你想解决这个问题并且无法等待你的修补程序包含在下一个emacs版本中,请试试这个:
(defadvice org-icalendar-create-uid (after org-icalendar-create-uid-after activate)
(save-buffer))
这个建议org-icalendar-create-uid
,以便在创建新的UID时,保存当前缓冲区 2 。你需要非常小心地建议功能。我建议创建一个与此类似的export-icalendar.el
脚本:
;; initialize org-mode
(require 'org)
;; pick your agenda files
(setq org-agenda-files '("~/org"))
;; store UIDs in properties drawer
(setq org-icalendar-store-UID t)
;; optional configuration
(setq org-icalendar-use-scheduled '(event-if-todo event-if-not-todo))
(setq org-agenda-default-appointment-duration 50)
;; avoid interactive prompts if UIDs are created
(defadvice org-icalendar-create-uid (after org-icalendar-create-uid-after activate)
(save-buffer))
(org-icalendar-combine-agenda-files)
要运行它,请执行此操作 3 :
emacs --batch -l export-icalendar.el
1:http://emacswiki.org/emacs/AdvisingFunctions
2:在org-icalendar-create-uid
内调用with-current-buffer
,有关详细信息,请参阅ox-icalendar.el
。
3:永远不要使用org-icalendar-combine-agenda-files
通过eval
运行emacsclient
,如果您已经访问过议程文件,则会导致问题。
答案 1 :(得分:0)
你会得到帮助吗? 函数save-some-buffers 在emacs? 喜欢
/usr/bin/emacs -l ~/.emacs -eval '(progn (org-icalendar-export-agenda-files) (save-some-buffers t))' --batch
是的,它可以被视为一种kludge。