组织模式:如何正确捕获电子邮件地址?

Mar*_*ert 5 emacs org-mode

我想用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:")))
Run Code Online (Sandbox Code Playgroud)

我可以轻松地使用Cc cc捕获联系人,它会提示输入名称,标签和电子邮件地址.但是,而不是像输出

* My contact                         :my.tag:
  :PROPERTIES:
  :EMAIL: address@hidden
  :URL:
  :WORK:
  :HOME:
  :MOBILE:
  :LOCATION:
  :BIRTHDAY: 
  :NOTE:
  :END:
Run Code Online (Sandbox Code Playgroud)

我获得:

* My contact                         :my.tag:
  :PROPERTIES:
  :EMAIL:
  :URL:
  :WORK:
  :HOME:
  :MOBILE:
  :LOCATION:
  :BIRTHDAY: 
  :NOTE:
  :EMAIL: address@hidden
  :END:
Run Code Online (Sandbox Code Playgroud)

所以问题是第一个:EMAIL:被忽略而是第二个:EMAIL:插入之前:END:.如何获得正确的输出(如上所述)?

Jon*_*pin 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:"
Run Code Online (Sandbox Code Playgroud)

您将得到所需的输出。您也不需要%?除非您特别希望在退出捕获时将光标放置在联系人姓名之前。