diff options
Diffstat (limited to '')
-rw-r--r-- | runtime/ftplugin/mail.vim | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/runtime/ftplugin/mail.vim b/runtime/ftplugin/mail.vim new file mode 100644 index 0000000..3cef84f --- /dev/null +++ b/runtime/ftplugin/mail.vim @@ -0,0 +1,47 @@ +" Vim filetype plugin file +" Language: Mail +" Maintainer: The Vim Project <https://github.com/vim/vim> +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar <Bram@vim.org> + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl modeline< tw< fo< comments<" + +" Don't use modelines in e-mail messages, avoid trojan horses and nasty +" "jokes" (e.g., setting 'textwidth' to 5). +setlocal nomodeline + +" many people recommend keeping e-mail messages 72 chars wide +if &tw == 0 + setlocal tw=72 +endif + +" Set 'formatoptions' to break text lines and keep the comment leader ">". +setlocal fo+=tcql + +" Add n:> to 'comments, in case it was removed elsewhere +setlocal comments+=n:> + +" .eml files are universally formatted with DOS line-endings, per RFC5322. +" If the file was not DOS the it will be marked as changed, which is probably +" a good thing. +if expand('%:e') ==? 'eml' + let b:undo_ftplugin ..= " fileformat=" .. &fileformat + setlocal fileformat=dos +endif + +" Add mappings, unless the user doesn't want this. +if !exists("no_plugin_maps") && !exists("no_mail_maps") + " Quote text by inserting "> " + if !hasmapto('<Plug>MailQuote') + vmap <buffer> <LocalLeader>q <Plug>MailQuote + nmap <buffer> <LocalLeader>q <Plug>MailQuote + endif + vnoremap <buffer> <Plug>MailQuote :s/^/> /<CR>:noh<CR>`` + nnoremap <buffer> <Plug>MailQuote :.,$s/^/> /<CR>:noh<CR>`` +endif |