2013-06-22 25 views
5

Tôi đang cố gắng tạo mẫu bằng cách sử dụng các mẫu bắt giữ khi sử dụng mu4e. Khi xem một tin nhắn trong mu4e: chế độ xem, tôi có thể gọi các mẫu chụp bằng tổ hợp phím và sau đó thêm lời nhắc vào một tệp có liên kết tới thư. Một cái gì đó như thế này:Sử dụng các mẫu chụp ảnh với mu4e

* NEXT Respond to Person A on Message Subject 
SCHEDULED: <2013-06-22 Sat> 
[2013-06-22 Sat 22:05] 
Email subject linked to mu4e message 

Dưới đây là các mẫu trong emacs của tôi:

(setq org-capture-templates 
(quote (("r" "respond" entry (file "~/refile.org") 
"* NEXT Respond to %:from on %:subject\nSCHEDULED: %t\n%U\n%a\n\n" 
:clock-in t :clock-resume t :immediate-finish t)))) 

Nhưng các biến trong phần 9.1.3.2 của hướng dẫn chính thức orgmode không được thiết lập trong mu4e. Đoán của tôi là nó nên được thiết lập trong các chức năng sau đây trong org-mu4e.el. Xem 3 dòng được đánh dấu bằng một bình luận tôi đã thêm, nhưng điều này không giải quyết được vấn đề. Liên kết (% a) được khởi tạo, nhưng không phải: đến,: từ và: subject.

Nếu tôi gỡ lỗi, tôi có thể nhìn thấy cuộc gọi chức năng để org-store-link-props trông như thế này:

org-store-link-props(:type "mu4e" :from (("Person Name" . "[email protected]")) 
:to (("Me Surname" . "[email protected]")) :subject "Re: Subject of Email" 
:message-id "message-id") 

Tuy nhiên, các mẫu đánh giá để:

* NEXT Respond to %:from on %:subject 
SCHEDULED: <2013-06-23 Sun> 
[2013-06-23 Sun 21:08] 

Cảm ơn trợ giúp - đây là chức năng cuối cùng phù hợp với tôi:

(defun org-mu4e-store-link() 
"Store a link to a mu4e query or message." 
(cond 
;; storing links to queries 
((eq major-mode 'mu4e-headers-mode) 
    (let* ((query (mu4e-last-query)) 
     desc link) 
(org-store-link-props :type "mu4e" :query query) 
(setq 
    desc (concat "mu4e:query:" query) 
    link desc) 
(org-add-link-props :link link :description desc) 
link)) 
    ;; storing links to messages 
((eq major-mode 'mu4e-view-mode) 
    (let* ((msg (mu4e-message-at-point)) 
    (msgid (or (plist-get msg :message-id) "<none>")) 
    (from (car (car (mu4e-message-field msg :from)))) 
    (to (car (car (mu4e-message-field msg :to)))) 
    (subject (mu4e-message-field msg :subject)) 
    link) 
    (setq link (concat "mu4e:msgid:" msgid)) 
    (org-store-link-props :type "mu4e" :link link 
      :message-id msgid) 
    (setq link (concat "mu4e:msgid:" msgid)) 
    (org-store-link-props 
    :type "mu4e" :from from :to to :subject subject 
      :message-id msgid) 

    (org-add-link-props :link link 
      :description (funcall org-mu4e-link-desc-func msg)) 
    link)))) 

(org-add-link-type "mu4e" 'org-mu4e-open) 
(add-hook 'org-store-link-functions 'org-mu4e-store-link) 
+0

Được rồi, đã thực hiện một số tiến bộ. Có vẻ như mu4e-message-field trả về một email là (("Name Surname". "[email protected]")). Vì vậy, nếu tôi thay đổi đó thành một chuỗi với một cái gì đó giống như hai cuộc gọi của xe nó loại công trình, trừ khi từ trường trong thư không có tên và email, như "Tên họ <[email protected]>". Không phải là một giải pháp thanh lịch chút nào, nhưng vẫn hoạt động ngay bây giờ. – cheese

+0

Một cách khác để chuyển từ danh sách các danh sách sang chuỗi sẽ hoạt động tốt hơn? – cheese

+0

Nếu bạn nhìn vào phần 'Chức năng tin nhắn' trong hướng dẫn sử dụng (có vẻ như SO không cho phép tôi định dạng này là có thể đọc được ...): Các trường liên hệ (Tới, Từ, Cc, Bcc) là danh sách cons-pairs '(tên. email)'; ‘tên’ có thể là ‘không’. Vì vậy, ví dụ: (mu4e-message-field some-msg: to) ;; => (("Jack". "[email protected]") (nil. "[email protected]")) – djcb

Trả lời

3

Điều gì đó như thế này sẽ hoạt động:

(setq from 
    (let ((first (car (mu4e-message-field-at-point :from)))) 
    (if (car first) 
     (format "%s <%s>" (car first) (cdr first)) 
     (cdr first)))) 
Các vấn đề liên quan