xref: /vim-8.2.3635/runtime/ftplugin/mail.vim (revision 113cb513)
1" Vim filetype plugin file
2" Language:	Mail
3" Maintainer:	Bram Moolenaar <[email protected]>
4" Last Change:	2021 Oct 23
5
6" Only do this when not done yet for this buffer
7if exists("b:did_ftplugin")
8  finish
9endif
10let b:did_ftplugin = 1
11
12let b:undo_ftplugin = "setl modeline< tw< fo< comments<"
13
14" Don't use modelines in e-mail messages, avoid trojan horses and nasty
15" "jokes" (e.g., setting 'textwidth' to 5).
16setlocal nomodeline
17
18" many people recommend keeping e-mail messages 72 chars wide
19if &tw == 0
20  setlocal tw=72
21endif
22
23" Set 'formatoptions' to break text lines and keep the comment leader ">".
24setlocal fo+=tcql
25
26" Add n:> to 'comments, in case it was removed elsewhere
27setlocal comments+=n:>
28
29" .eml files are universally formatted with DOS line-endings, per RFC5322.
30" If the file was not DOS the it will be marked as changed, which is probably
31" a good thing.
32if expand('%:e') ==? 'eml'
33  let b:undo_ftplugin ..= " fileformat=" .. &fileformat
34  setlocal fileformat=dos
35endif
36
37" Add mappings, unless the user doesn't want this.
38if !exists("no_plugin_maps") && !exists("no_mail_maps")
39  " Quote text by inserting "> "
40  if !hasmapto('<Plug>MailQuote')
41    vmap <buffer> <LocalLeader>q <Plug>MailQuote
42    nmap <buffer> <LocalLeader>q <Plug>MailQuote
43  endif
44  vnoremap <buffer> <Plug>MailQuote :s/^/> /<CR>:noh<CR>``
45  nnoremap <buffer> <Plug>MailQuote :.,$s/^/> /<CR>:noh<CR>``
46endif
47