Tips and Tricks for using Notmuch with vim
Tips for using Notmuch with vim; these may be applicable when using vim with notmuch-mutt, mutt-kz, or notmuch-vim.
Install the vim addon for Notmuch
Before you can run Notmuch within vim, you must install notmuch as a vim addon.
For example, if you have installed from the debian package:
$ sudo apt-get install notmuch-vim
then to install as an addon, run this command:
$ vim-addon-manager install notmuch
Run Notmuch within vim
Open vim and type
:Notmuch
and press ENTER. Voila.
Alternatively, you can invoke vim with the -c flag:
$ vim -c :Notmuch
Addressbook management and vim
There are some emacs tips over here that explains how to configure emacs with an addressbook, but the few solutions were not fast enough for me. And I never could test the vala-based code. So I updated the notmuch_addresses code to use a cache to be able to make better matches and still be lightning fast.
And finally, I needed to have a way to autocomplete my recipients' addresses
automagically from within vim
. So that's why I created the notmuch_abook code.
You can either install it as a plugin in vim, using vundle:
Vundle 'guyzmo/notmuch-abook'
Or if you're not using vim (which is objectively the best editor ever), you may want to use it as standalone:
% pip install notmuch_abook
To configure the address book, append to ~/.notmuch-config
the following:
% cat >> ~/.notmuch-config << EOF
[addressbook]
path=/home/YOURUSERNAME/.notmuch-abook.db
backend=sqlite3
EOF
where YOURUSERNAME is your home directory. Then, you can sync the addressbook cache by running. It will create the database file specified in configuration, and go through all notmuch's indexed mails to get all addresses headers and cache them. It takes around 20 seconds on my 10000 mails index:
% notmuch_abook create
And you can query for addresses using the lookup command, which will match the beginning of each word in the name and address, as follows:
% notmuch_abook lookup Foo
Foobar Bar <bar@bar.com>
Bar Foobar <bar@bar.com>
Bar Bar <foobar@bar.com>
Bar Bar <bar@foobar.com>
Bar Bar <bar@bar.foo>
If you're using vim, when you edit a mail having a filetype set to mail, you will be able to open a completion menu when you do <C-x><C-u> at every address header.