blob: f12022305f3ec58f9540f3fe0a830aab3b83fa12 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim filetype plugin file
2" Language: Mail
3" Maintainer: Bram Moolenaar <Bram@vim.org>
Bram Moolenaar113cb512021-11-07 20:27:04 +00004" Last Change: 2021 Oct 23
Bram Moolenaar071d4272004-06-13 20:20:40 +00005
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
Bram Moolenaar2df58b42012-11-28 18:21:11 +010012let b:undo_ftplugin = "setl modeline< tw< fo< comments<"
Bram Moolenaar071d4272004-06-13 20:20:40 +000013
Bram Moolenaar9964e462007-05-05 17:54:07 +000014" Don't use modelines in e-mail messages, avoid trojan horses and nasty
15" "jokes" (e.g., setting 'textwidth' to 5).
Bram Moolenaar071d4272004-06-13 20:20:40 +000016setlocal 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
Bram Moolenaar2df58b42012-11-28 18:21:11 +010026" Add n:> to 'comments, in case it was removed elsewhere
27setlocal comments+=n:>
28
Bram Moolenaar113cb512021-11-07 20:27:04 +000029" .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
Bram Moolenaar5c736222010-01-06 20:54:52 +010037" Add mappings, unless the user doesn't want this.
Bram Moolenaar071d4272004-06-13 20:20:40 +000038if !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