Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 保存组织议程_Emacs_Org Mode - Fatal编程技术网

Emacs 保存组织议程

Emacs 保存组织议程,emacs,org-mode,Emacs,Org Mode,每次计算组织议程时,我都希望将组织议程的输出保存到文本文件中。这样,我就可以使用一个外部程序(如windows上的ATNotes或linux上的conky)来提取这个文本文件并将其显示在我的桌面上 如何操作?如果您想在打开emacs时执行此操作,您可以通过M-x save buffer调用*议程*buffer上的save buffer(由于orgmode将C-x C-s绑定到org保存所有组织缓冲区。如果需要,您可以将save buffer绑定到org mode map中的其他内容 如果您想通过

每次计算组织议程时,我都希望将组织议程的输出保存到文本文件中。这样,我就可以使用一个外部程序(如windows上的ATNotes或linux上的conky)来提取这个文本文件并将其显示在我的桌面上


如何操作?

如果您想在打开emacs时执行此操作,您可以通过
M-x save buffer
调用
*议程*
buffer上的
save buffer
(由于orgmode将
C-x C-s
绑定到
org保存所有组织缓冲区。
如果需要,您可以将
save buffer
绑定到
org mode map
中的其他内容

如果您想通过cron执行此操作,您应该能够使用组织模式邮件列表中的代码段将输出通过管道传输到文件。我以前使用过此方法:

    emacs -batch -eval '(org-batch-agenda "a" org-agenda-ndays 7 org-agenda-include-diary nil org-agenda-files (quote ("~/org/todo.org")))' > agenda.txt

因此,我最终决定打开emacs lisp手册,自己解决这个问题。我编写了这段代码,似乎工作得很好!:)

编辑原因:

1) 如果没有kill缓冲区,defadvice会在每次执行org todo list时创建一个新的todo缓冲区。这让人很恼火

2) 如果没有get buffer create函数,kill buffers会第一次失败,因为当时没有名为todo的缓冲区

3) 如果没有set-buffer-modified-p,函数将不断告诉您“todo buffer已修改。真的要杀死它吗?(y或n)”,这将真正破坏整个目的


唷!我真高兴我花了时间和精力来解决这个问题!:D

在你不辞辛劳地编写了这段代码之后,我感觉自己像是在为你的阅兵式上下大雨(而且还使用了一条绕过的建议!),但事实上,这项功能已经进入了组织模式,并记录在手册中。您需要的命令是
org write agenda
(议程缓冲区中的C-x C-w)。请参阅组织模式信息中标题为“导出议程视图”的部分。

我不希望每次更改某些内容并重新计算议程时都将缓冲区保存到文件中,我正在寻找一种完全基于emacs的解决方案。我的思路是,必须连接到计算议程的函数,或者使用defadvice。不幸的是,我对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"))