Emacs Org-mode:如何在日记周年纪念中包含属性?

11

我正在尝试自动将Org-mode条目的“生日”和“姓名”属性添加到议程中:

* John
  :PROPERTIES:
  :Name: John
  :Birthday: (5 4 1900)
  :END:

我找到了一种方法,在日程表中正确的周年纪念日期添加条目,只需在属性后面插入以下行:

%%(apply 'diary-anniversary (read (org-entry-get nil "Birthday"))) John
然而,使用这段代码后,我仍然需要手动输入名称。是否有一种方法可以自动将“名称”属性的值添加到所有条目的日记文本中?

编辑1:之前的示例不起作用,现在已将括号添加到生日属性的值周围。

3个回答

4

建议您在Org邮件列表中提出问题,该列表非常活跃,org-mode的创建者Carsten Dominik通常会几乎立即回复此列表上的帖子(顺便说一句,是主要邮件列表)。


我已经看到了这个列表。尽管您的建议很好,但它应该是对我的问题的评论。 - lecodesportif

4

截至2011年5月17日,org-contacts的链接没有显示如何获取它。当前网页上显示它随org-mode版本>7.5一起发布,但是当前版本的org-mode是7.5。 - huyz
抱歉,我之前没有看到你的评论。Org-mode 7.6于7月6日发布。在此之前,获取org-contacts的最新版本的唯一方法是克隆org-mode repogit clone git://orgmode.org/org-mode.git - Michael
然后切换到repo cd org-mode 并构建org-mode:make clean && make。作为最后一步,您必须告诉emacs有关org-mode-repo的信息。将(setq load-path (cons "/path/to/repo/org-mode/lisp" (cons "/path/to/repo/org-mode/contrib/lisp" load-path))(require 'org-contacts)添加到您的**~/.emacs**中。 - Michael

2
也许你需要编写一些Lisp代码来实现你想要的功能。org-mode手册提供了一个类似的例子,但我猜你想要一个更简单的格式,当它描述日历/议程集成时http://www.gnu.org/software/emacs/manual/html_node/org/Weekly_002fdaily-agenda.html
* Birthdays and similar stuff
 #+CATEGORY: Holiday
 %%(org-calendar-holiday)   ; special function for holiday names
 #+CATEGORY: Ann
 %%(diary-anniversary 14  5 1956) Arthur Dent is %d years old
 %%(diary-anniversary  2 10 1869) Mahatma Gandhi would be %d years old

如果您想要自定义设置,我认为您有其他选择:可以使用新类型的导出或动态块。这可能突出了议程与日记的不同用例。议程似乎更加适用于日常任务。


这与我已经在做的事情以及我在问题中试图描述的非常接近。我希望通过提取“名称”属性的值自动将“亚瑟·丹特”和“圣雄甘地”的名称插入日程表中。 - lecodesportif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接