我想用org-mode捕获联系人(姓名,电子邮件地址,...),从而设置 .emacs中的以下内容:
(setq org-capture-templates
'(("t" "TODO in ~/org/agenda.org -> Tasks" entry (file+headline
"~/org/agenda.org" "Tasks")
"* TODO %?\nSCHEDULED: %^t\n%U %a")
("c" "Contact in ~/org/contacts.org -> Contact" entry (file+headline
"~/org/contacts.org" "Contact")
"* %?%(org-contacts-template-name) %^g
:PROPERTIES:
:EMAIL: %(org-contacts-template-email)
:URL:
:WORK:
:HOME:
:MOBILE:
:LOCATION:
:BIRTHDAY:
:NOTE:
:END:")))
我可以轻松地使用C-c c c捕获联系人,它会提示输入名称,标签和 电子邮件地址。但是,而不是像
这样的输出* My contact :my.tag:
:PROPERTIES:
:EMAIL: address@hidden
:URL:
:WORK:
:HOME:
:MOBILE:
:LOCATION:
:BIRTHDAY:
:NOTE:
:END:
我获得:
* My contact :my.tag:
:PROPERTIES:
:EMAIL:
:URL:
:WORK:
:HOME:
:MOBILE:
:LOCATION:
:BIRTHDAY:
:NOTE:
:EMAIL: address@hidden
:END:
所以问题是第一个:EMAIL:被忽略而不是第二个 :EMAIL:插入之前:END:。如何获得正确的输出(如 如上所述)?
答案 0 :(得分:3)
sexp %(org-contacts-template-email)
实际上会在调用时创建:EMAIL:属性。如果您将捕获模板更改为:
"* %?%(org-contacts-template-name) %^g
%(org-contacts-template-email)
:PROPERTIES:
:URL:
:WORK:
:HOME:
:MOBILE:
:LOCATION:
:BIRTHDAY:
:NOTE:
:END:"
您将获得所需的输出。您也不需要%?
,除非您特别希望在退出捕获时将光标放在联系人姓名之前。