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