Sử dụng ido hoặc helm để tự động hoàn thành địa chỉ email trong mu4e


7

Có cách nào để tự động hoàn thành các địa chỉ email trong cửa sổ soạn thảo mu4e bằng Ido hoặc Helm thay vì bộ đệm * Hoàn thành * tiêu chuẩn không?

Câu trả lời:


5

Biến mu4e~contacts-for-completionlưu trữ một danh sách các địa chỉ liên lạc mu4ebiết về. Các liên hệ được lưu trữ thuận tiện dưới dạng "name <email>"chuỗi, đó là điều tương tự bạn muốn chèn.

Đây là một hàm ví dụ sử dụng biến cùng với idođể chọn và chèn một liên hệ:

(defun select-and-insert-contact ()
  (interactive)
  (insert (ido-completing-read "Contact: " mu4e~contacts-for-completion)))

Đây là một phiên bản phức tạp hơn sẽ sử dụng liên hệ một phần trước điểm (nếu có) làm đầu vào ban đầu khi hoàn thành. (Hầu hết các mã là trực tiếp từ mu4e~compose-complete-contact).

(defun select-and-insert-contact (&optional start)
  (interactive)
  (let ((mail-abbrev-mode-regexp mu4e~compose-address-fields-regexp)
        (eoh ;; end-of-headers
         (save-excursion
           (goto-char (point-min))
           (search-forward-regexp mail-header-separator nil t))))
    (when (and eoh (> eoh (point)) (mail-abbrev-in-expansion-header-p))
      (let* ((end (point))
             (start
              (or start
                  (save-excursion
                    (re-search-backward "\\(\\`\\|[\n:,]\\)[ \t]*")
                    (goto-char (match-end 0))
                    (point))))
             (contact
              (ido-completing-read "Contact: "
                                   mu4e~contacts-for-completion
                                   nil
                                   nil
                                   (buffer-substring-no-properties start end))))
        (unless (equal contact "")
          (kill-region start end)
          (insert contact))))))

0

Tuyên bố miễn trừ trách nhiệm : Tôi không sử dụng mu4e nữa, vì vậy đây không phải là câu trả lời sao chép / dán hoặc thử nghiệm.

Chức năng mu4e~compose-complete-contactdường như cung cấp danh sách các địa chỉ liên hệ có sẵn để hoàn thành: https://github.com/djcb/mu/blob/master/mu4e/mu4e-compose.el#L236

Bạn chỉ có thể cung cấp cho danh sách ido-completing-read.

(ido-completing-read "Complete contact: " (mu4e~compose-complete-contact)))))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.