【发布时间】:2016-06-27 19:29:12
【问题描述】:
在 .emacs 我有
(org-agenda-files (quote ("d:/GTD/a.org" "d:/GTD/b.org" "d:/GTD/c.org")))
在这三个文件中,我可以链接到其他组织文件。是否可以(即时使用当前缓冲区)扫描 a.org、b.org、c.org 并添加指向 org-agenda-files 的链接?
更新 1。
只有一种可能。链接文件位于几个定义明确的文件夹中。在How to add .org files under org-directory to agenda 上是关于如何添加所有文件的说明。有没有办法只将那些在 a.org、b.org、c.org 中链接的文件添加到 org-agenda-files?。
更新 2。
我不知道为什么,但是在添加 (interactive) 之后,功能在 emacs 中变得可见。该函数的完整代码:
(defun add-links-to-org-agenda-files ()
(interactive)
(org-element-map
(org-element-parse-buffer)
'link
(lambda (x)
(if (equal (org-element-property :type x) "file")
(add-to-list 'org-agenda-files (org-element-property :path x))))))
问候
克日谢克
【问题讨论】:
-
Re: 交互式 - 可以使用
M-x command执行交互式函数(也称为“命令”),而只能使用M-: (function)执行非交互式函数 - 请参阅 Emacs Lisp 手册了解更多详情,尤其是this section 和this SO question。