Using Vim as Email Editor together with mutt
Vim is a great editor and can also used for writing Emails. I am using mutt as my mail user agent and have configured several scripts for using Vim with mutt.
You need to configure Vim to support filetype plugins. Vim by default can detect mails when used from vim and will set the buffers filetype to mail and load mail specific scripts. For this make sure, your .vimrc contains at least a statement such as
filetype plugin on
That's already it. All the coming scripts, if not explained otherwise can now be placed into a directory ~/.vim/ftplugin/mail and Vim will automatically load them, when using Vim for writing Emails.
This file let's Vim guess what kind of text you are writing and sets some formatoptions. So it sets different formatoptions, depending on whether you are editing the header of the Email, are fixing some quotations or edit a patch. Credits go to Teemu Likonen.
Allows to automatically format your mail (e.g. strip quoted signatures, add Greeting, change and clean subject).
Note: For using the Greeting feature, make sure you define the variables b:Signoff and b:Name.
I explicitly set those variables in my .muttrc like this:
set editor='vim --cmd "let b:Signoff=\"Grüße\"|let b:Name=\"Christian\""'
Using folder-hooks, you can configure those variables to your liking, e.g. have english greeting when opening a mailinglist folder.
Check out the mappings, that are defined in this script:
\mdq Deletes quoted signatures
\mds Deletes old subject
\mct Change the subject (adds the (was...) around it)
\mcs Clean subject (removes the (was....) part)
This is Vim-Script Plugin 1757 and lets you use lbdbq for querying various adressbooks. I mainly use it for querying abook and mutt's aliases file. Simply enter the search term and press \lb. Vim will query lbdbq for your search-term and present a dialog of adresses to use.
This is an addon to the lbdq.vim script from above. It adds a omni-completion, so you can enter search-terms and press <Ctrl-X><Ctrl-U> in insert mode to have Vim display a small completion menu for the adresses available.
Displays the Author of the Email to whom you are responding in the statusline. Nothing more to say.
Use the Vim Plugin CheckAttach (github)
Reminds you, if you want to attach files to your mails and you can select the files using filename completion. You can also attach files manually using the :AttachFiles command. Supports ranger as file browser.
Configuring Vim
You need to configure Vim to support filetype plugins. Vim by default can detect mails when used from vim and will set the buffers filetype to mail and load mail specific scripts. For this make sure, your .vimrc contains at least a statement such as
filetype plugin on
That's already it. All the coming scripts, if not explained otherwise can now be placed into a directory ~/.vim/ftplugin/mail and Vim will automatically load them, when using Vim for writing Emails.
Formatting Text automatically
format.vim (html)This file let's Vim guess what kind of text you are writing and sets some formatoptions. So it sets different formatoptions, depending on whether you are editing the header of the Email, are fixing some quotations or edit a patch. Credits go to Teemu Likonen.
Automatic formatting of Mails
posting.vim (html)Allows to automatically format your mail (e.g. strip quoted signatures, add Greeting, change and clean subject).
Note: For using the Greeting feature, make sure you define the variables b:Signoff and b:Name.
I explicitly set those variables in my .muttrc like this:
set editor='vim --cmd "let b:Signoff=\"Grüße\"|let b:Name=\"Christian\""'
Using folder-hooks, you can configure those variables to your liking, e.g. have english greeting when opening a mailinglist folder.
Check out the mappings, that are defined in this script:
\mdq Deletes quoted signatures
\mds Deletes old subject
\mct Change the subject (adds the (was...) around it)
\mcs Clean subject (removes the (was....) part)
Querying your adressbook
lbdbq.vim (html)This is Vim-Script Plugin 1757 and lets you use lbdbq for querying various adressbooks. I mainly use it for querying abook and mutt's aliases file. Simply enter the search term and press \lb. Vim will query lbdbq for your search-term and present a dialog of adresses to use.
Omni-completion for adresses
lbdbq_complete.vim (html)This is an addon to the lbdq.vim script from above. It adds a omni-completion, so you can enter search-terms and press <Ctrl-X><Ctrl-U> in insert mode to have Vim display a small completion menu for the adresses available.
Displaying the From in the Statusline
stl.vim (html)Displays the Author of the Email to whom you are responding in the statusline. Nothing more to say.
Check for missing Attachments
Use the Vim Plugin CheckAttach (github)
Reminds you, if you want to attach files to your mails and you can select the files using filename completion. You can also attach files manually using the :AttachFiles command. Supports ranger as file browser.