Estimated read time: 1 minutes
I used to have a hackish setup to trigger address book in the form of code completion from vim, when mutt starts it. I recently migrated the last part of it from python2, so it's now in a relatively consistent state. On a boring flight trip I finally got around to summarize how it works, perhaps it's useful to someone else as well. :-)
By multiple sources, I mean Google Contacts for my private account, and LDAP for work-related accounts. I have one script for each to have a local backup:
- google/contacts/backup
backs up Google Contacts to
$HOME/.google-contacts/ - ldap/contacts/backup
backs up from an LDAP source to
$HOME/.ldap-contacts/
Then comes
mutt/contacts/search, which
can read these backups from $HOME/.mutt/contacts/ (you can create symlinks to decide which backup
should be included in the search results).
The rest is just a short
search.vim that
integrates the search script into vim, so when mutt starts it with ft=mail, the search script is
invoked when you start typing and you press Ctrl-X Ctrl-O (trigger code completion).
And that's it, I can start typing mails to friends and customers even without network connectivity, without manually maintaining an own address book just for mutt!