mirror of
https://github.com/vim/vim
synced 2025-03-15 14:27:53 +01:00
The new native commenting functionality is currently not used when editing mail. One could reasonably expect it to change the "quote" state of any given line in the mail (i.e. the preceding ">"), which would be very handy and feel natural when editing mail. Especially since the current file already uses "setlocal comments+=n:>". Solution: Add commentstring to `> %s` to be used in files of type mail. closes: #16669 Signed-off-by: Lucas Eekhof <105216949+eekhof@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
50 lines
1.6 KiB
VimL
50 lines
1.6 KiB
VimL
" Vim filetype plugin file
|
|
" Language: Mail
|
|
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
|
" Last Change: 2025 Feb 20
|
|
" 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< commentstring<"
|
|
|
|
" 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
|
|
|
|
" Set commentstring to quoting sign ">" so comment shortcuts can be used to
|
|
" edit quoted parts of mail
|
|
setlocal commentstring=>\ %s
|
|
" 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
|