将 org-agenda-files 附加到另一个目录的文件

Append org-agenda-files with files of another directory

所以我尝试创建一个字符串列表

"a" "b" "c"

这是我要传递给 org-agenda-files 的文件列表 至于现在这看起来像这样

(setq org-agenda-files "~/.tasks.org")

现在我需要添加一些来自目录的文件。我可以得到那些 directory-files-recursively "~/orgroam/daily" "\[^.].*\.org\'". this will return lets say ("~/b" "~/c")`.

当我尝试连接“a”时出现问题。到目前为止我绑定的是

(list "~/.tasks.org" (mapconcat #'identity (directory-files-recursively "~/orgroam/daily" "\`[^.].*\.org\'") " "))

(concat "~/.tasks.org " (mapconcat #'identity (directory-files-recursively "~/orgroam/daily" "\`[^.].*\.org\'") " "))

但是这个 returns "a" "b c""a b c"

我尝试的另一件事是使用 add-to-list(setq org-agenda-files '("~/.tasks.org")) 之后添加 directory-files-recursively 的结果。在这种情况下,我得到 Wrong type argument: stringp, ("~/orgroam/daily/2022-01-19.org" "~/orgroam/daily/2022-01-28.org"....)

有没有人对 org-agenda-files 获得所需的输出有任何建议?

如果你想包含来自另一个目录的所有 org 文件,你可以:

(setq org-agenda-files '("~/.tasks.org"
                         "~/orgroam/daily/"))

如果您还想追加文件,您可以:

(setq org-agenda-files (append
                        '("~/.tasks.org")
                        (directory-files-recursively "~/Documents/Org/notes/" "\`[^.].*\.org\'")))

友情提示,Org文件过多可能会导致Agenda非常慢,可以参考这个blog