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


我试图将组织模式条目的“生日”和“名称”属性自动添加到议程中:

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

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

%%(apply 'diary-anniversary (read (org-entry-get nil "Birthday"))) John

但是,使用此代码,我仍然需要手动输入名称。有没有办法让所有条目自动将“Name”属性的值添加到日记文本中?

编辑1:示例之前没有工作,现在在生日属性的值周围添加了parantheses


964
2018-01-22 14:19


起源



答案:


也许 https://julien.danjou.info/projects/emacs-packages#org-contacts 是你的问题的解决方案。 org-contacts是org-mode的地址簿。


4



截至2011-05-17,org-contacts的链接未显示如何获取。网页当前显示它附带org-mode version> 7.5但当前版本的org-mode为7.5 - huyz
对不起,我之前没有看到你的评论。 Org-mode 7.6于7月6日发布。在获得最新版org-contacts的唯一方法之前就是克隆了 组织模式回购: git clone git://orgmode.org/org-mode.git。 - Michael
然后换成回购 cd 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


答案:


也许 https://julien.danjou.info/projects/emacs-packages#org-contacts 是你的问题的解决方案。 org-contacts是org-mode的地址簿。


4



截至2011-05-17,org-contacts的链接未显示如何获取。网页当前显示它附带org-mode version> 7.5但当前版本的org-mode为7.5 - huyz
对不起,我之前没有看到你的评论。 Org-mode 7.6于7月6日发布。在获得最新版org-contacts的唯一方法之前就是克隆了 组织模式回购: git clone git://orgmode.org/org-mode.git。 - Michael
然后换成回购 cd 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


最好在此问这个问题 组织邮件列表,他们非常活跃,而且Carsten Dominik(组织模式的创建者)通常会立即回复此列表中的帖子(BTW, 这个 是主要列表电子邮件。


4



我已经看过这个名单了。你的建议很好,虽然它应该是对我的问题的评论。 - lecodesportif


也许你走的路需要你写一些口齿以获得你想要的东西。组织模式手册给出了一个类似的例子,但我猜你想要一个更简单的格式,当它描述日历/议程集成时 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

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


2



这接近我已经在做的事情和我试图在我的问题中描述的内容。我想通过提取“Name”属性的值自动将名称“Arthur Dent”和“Mahatma Gandhi”插入议程。 - lecodesportif