Gibt es eine Möglichkeit, E-Mail-Adressen im Fenster zum Erstellen von mu4e mithilfe von Ido oder Helm anstelle des Standardpuffers * Completions * automatisch zu vervollständigen?
Gibt es eine Möglichkeit, E-Mail-Adressen im Fenster zum Erstellen von mu4e mithilfe von Ido oder Helm anstelle des Standardpuffers * Completions * automatisch zu vervollständigen?
Antworten:
Die Variable mu4e~contacts-for-completion
speichert eine Liste von Kontakten, mu4e
die bekannt sind. Die Kontakte werden bequem als "name <email>"
Zeichenfolgen gespeichert. Dies ist das gleiche, was Sie einfügen möchten.
Hier ist eine Beispielfunktion, die die Variable zusammen mit verwendet ido
, um einen Kontakt auszuwählen und einzufügen:
(defun select-and-insert-contact ()
(interactive)
(insert (ido-completing-read "Contact: " mu4e~contacts-for-completion)))
Hier ist eine ausführlichere Version, bei der der Teilkontakt vor dem Punkt (falls vorhanden) als erste Eingabe beim Abschluss verwendet wird. (Der größte Teil des Codes stammt direkt von 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))))))
Haftungsausschluss : Ich verwende mu4e nicht mehr, daher handelt es sich nicht um ein Kopieren / Einfügen oder eine getestete Antwort.
Die Funktion mu4e~compose-complete-contact
scheint eine Liste der zur Vervollständigung verfügbaren Kontakte bereitzustellen:
https://github.com/djcb/mu/blob/master/mu4e/mu4e-compose.el#L236
Sie könnten einfach die Liste füttern ido-completing-read
.
(ido-completing-read "Complete contact: " (mu4e~compose-complete-contact)))))