org-mode: как правильно захватывать адреса электронной почты? - PullRequest
5 голосов
/ 07 ноября 2011

Я хотел бы захватить контакты (имя, адрес электронной почты, ..) в режиме org и таким образом настроить следующее в .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 :. Как я могу получить правильный вывод (как описано выше)?

1 Ответ

3 голосов
/ 08 ноября 2011

sexp %(org-contacts-template-email) фактически создаст свойство: EMAIL: при вызове. Если вы измените шаблон захвата на:

"* %?%(org-contacts-template-name) %^g
%(org-contacts-template-email)
:PROPERTIES:
:URL:
:WORK:
:HOME:
:MOBILE:
:LOCATION:
:BIRTHDAY: 
:NOTE:
:END:"

Вы получите желаемый результат. Вам также не понадобится %?, если только вы не хотите, чтобы курсор находился перед именем контакта при выходе из захвата.

...