Verwenden von ido oder helm zum automatischen Vervollständigen von E-Mail-Adressen in mu4e

7

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?

Scaramouche
quelle

Antworten:

5

Die Variable mu4e~contacts-for-completionspeichert eine Liste von Kontakten, mu4edie 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))))))
jbm
quelle
0

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-contactscheint 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)))))
Rimero
quelle