xref: /vim-8.2.3635/runtime/ftplugin/mail.vim (revision 113cb513)
1071d4279SBram Moolenaar" Vim filetype plugin file
2071d4279SBram Moolenaar" Language:	Mail
3071d4279SBram Moolenaar" Maintainer:	Bram Moolenaar <[email protected]>
4*113cb513SBram Moolenaar" Last Change:	2021 Oct 23
5071d4279SBram Moolenaar
6071d4279SBram Moolenaar" Only do this when not done yet for this buffer
7071d4279SBram Moolenaarif exists("b:did_ftplugin")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaarlet b:did_ftplugin = 1
11071d4279SBram Moolenaar
122df58b4aSBram Moolenaarlet b:undo_ftplugin = "setl modeline< tw< fo< comments<"
13071d4279SBram Moolenaar
149964e468SBram Moolenaar" Don't use modelines in e-mail messages, avoid trojan horses and nasty
159964e468SBram Moolenaar" "jokes" (e.g., setting 'textwidth' to 5).
16071d4279SBram Moolenaarsetlocal nomodeline
17071d4279SBram Moolenaar
18071d4279SBram Moolenaar" many people recommend keeping e-mail messages 72 chars wide
19071d4279SBram Moolenaarif &tw == 0
20071d4279SBram Moolenaar  setlocal tw=72
21071d4279SBram Moolenaarendif
22071d4279SBram Moolenaar
23071d4279SBram Moolenaar" Set 'formatoptions' to break text lines and keep the comment leader ">".
24071d4279SBram Moolenaarsetlocal fo+=tcql
25071d4279SBram Moolenaar
262df58b4aSBram Moolenaar" Add n:> to 'comments, in case it was removed elsewhere
272df58b4aSBram Moolenaarsetlocal comments+=n:>
282df58b4aSBram Moolenaar
29*113cb513SBram Moolenaar" .eml files are universally formatted with DOS line-endings, per RFC5322.
30*113cb513SBram Moolenaar" If the file was not DOS the it will be marked as changed, which is probably
31*113cb513SBram Moolenaar" a good thing.
32*113cb513SBram Moolenaarif expand('%:e') ==? 'eml'
33*113cb513SBram Moolenaar  let b:undo_ftplugin ..= " fileformat=" .. &fileformat
34*113cb513SBram Moolenaar  setlocal fileformat=dos
35*113cb513SBram Moolenaarendif
36*113cb513SBram Moolenaar
375c73622aSBram Moolenaar" Add mappings, unless the user doesn't want this.
38071d4279SBram Moolenaarif !exists("no_plugin_maps") && !exists("no_mail_maps")
39071d4279SBram Moolenaar  " Quote text by inserting "> "
40071d4279SBram Moolenaar  if !hasmapto('<Plug>MailQuote')
41071d4279SBram Moolenaar    vmap <buffer> <LocalLeader>q <Plug>MailQuote
42071d4279SBram Moolenaar    nmap <buffer> <LocalLeader>q <Plug>MailQuote
43071d4279SBram Moolenaar  endif
44071d4279SBram Moolenaar  vnoremap <buffer> <Plug>MailQuote :s/^/> /<CR>:noh<CR>``
45071d4279SBram Moolenaar  nnoremap <buffer> <Plug>MailQuote :.,$s/^/> /<CR>:noh<CR>``
46071d4279SBram Moolenaarendif
47