我想根据当前日期将议程视图导出为具有唯一名称的单独文件。基于此示例代码:
(setq org-agenda-custom-commands
'(("X" agenda "" nil ("agenda.ps")))
)
最后一个参数是文件名,所以我认为我可以把concat
函数的输出,例如:
(setq org-agenda-custom-commands
'(("X" agenda "" nil (concat (format-time-string "%Y-%m-%d") "-agenda.html")))
)
不幸的是,这种方法失败了,因为解释器按字面意思取concat
,并且不生成字符串(预期的数据类型)。我对LISP不太熟悉,所以非常感谢任何帮助。
首先,最后一个参数不是文件名,而是名称列表,因此您必须添加一些额外的括号。
正如你已经指出的那样,由于quote,列表没有被评估,并且它没有问题,因为你没有评估它,除了最后一个元素(concat
函数)。为此,您可以使用backquote:
(setq org-agenda-custom-commands
`(("X" agenda "" nil (,(concat (format-time-string "%Y-%m-%d") "-agenda.html"))))
)
作为旁注,我不是org-mode
的专家,我只是回答你问的问题,但我觉得有可能以更简单的方式实现你的目标。不确定如何,但也许你可以挖掘org-mode
的文档,可能你会发现一些有趣的东西。