回答:
変数mu4e~contacts-for-completion
は、mu4e
知っている連絡先のリストを格納します。連絡先は"name <email>"
文字列として保存されますが、これは挿入したいものと同じです。
次に、変数を一緒に使用しido
て連絡先を選択および挿入する関数の例を示します。
(defun select-and-insert-contact ()
(interactive)
(insert (ido-completing-read "Contact: " mu4e~contacts-for-completion)))
これは、完了時の初期入力としてポイントの前に部分的な接触がある場合はそれを部分的に使用する、より複雑なバージョンです。(ほとんどのコードは直接からのものです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))))))
免責事項:私はもうmu4eを使用しないので、これはコピー/貼り付けまたはテストされた答えではありません。
関数 mu4e~compose-complete-contact
は、完了に使用できる連絡先のリストを提供するようです:https :
//github.com/djcb/mu/blob/master/mu4e/mu4e-compose.el#L236
リストをにフィードするだけido-completing-read
です。
(ido-completing-read "Complete contact: " (mu4e~compose-complete-contact)))))