X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/722c98341ccc6f3b0e0afc2e12c665fafaed32fb..51e532bed427bffeac8fa44da7b2b6bf198b6849:/.vim/ftplugin/mail.vim?ds=sidebyside diff --git a/.vim/ftplugin/mail.vim b/.vim/ftplugin/mail.vim index 468624a..ed59cdc 100644 --- a/.vim/ftplugin/mail.vim +++ b/.vim/ftplugin/mail.vim @@ -1,5 +1,89 @@ -nmap <buffer> <C-P><F1> :w<CR>:%!~/.bin/mail/mailplate --keep-unknown official<CR> -nmap <buffer> <C-P><F2> :w<CR>:%!~/.bin/mail/mailplate --keep-unknown private<CR> -nmap <buffer> <C-P><F3> :w<CR>:%!~/.bin/mail/mailplate --keep-unknown debian<CR> -nmap <buffer> <C-P><F4> :w<CR>:%!~/.bin/mail/mailplate --keep-unknown sudetia<CR> -nmap <buffer> <F1> :w<CR>:%!~/.bin/mail/mailplate --auto --keep-unknown 2>/dev/null<CR> +nmap <buffer> <C-P><F1> :w<CR>:%!mailplate --keep-unknown official<CR> +nmap <buffer> <C-P><F2> :w<CR>:%!mailplate --keep-unknown private<CR> +nmap <buffer> <C-P><F3> :w<CR>:%!mailplate --keep-unknown debian<CR> +nmap <buffer> <C-P><F4> :w<CR>:%!mailplate --keep-unknown phd<CR> +nmap <buffer> <C-P><F5> :w<CR>:%!mailplate --keep-unknown ul<CR> +nmap <buffer> <C-P><F6> :w<CR>:%!mailplate --keep-unknown uzh<CR> +nmap <buffer> <C-P><F9> :w<CR>:%!mailplate --keep-unknown sudetia<CR> +nmap <buffer> <F1> :w<CR>:%!mailplate --auto --keep-unknown 2>/dev/null<CR> + +" Checking attachments in edited emails for use in Mutt: warns user when +" exiting +" by Hugo Haas <hugo@larve.net> - 20 June 2004 +" based on an idea by The Doctor What explained at +" <mid:caq406$rq4$1@FreeBSD.csie.NCTU.edu.tw> +" http://www.vim.org/scripts/download_script.php?src_id=3165 +"autocmd BufUnload mutt-* call CheckAttachments() +" DISABLED 2011.02.14 in favour of mutt's sendmail-checks +function! CheckAttachments() + let l:english = 'attach\(ing\|ed\|ment\)\?\|included\_swith\_sthis\_smail' + let l:french = 'attach\(e\|er\|ée\?s\?\|ement\|ant\)' + let l:german = 'an\(gehängt\|hängsel\|bei\)\|bei\(gefügt\|lage\)\|\(im\|siehe\)\_s\(anhang\|beilage\)' + let l:ic = &ignorecase + if (l:ic == 0) + set ignorecase + endif + if (search('^\([^>|].*\)\?\<\(re-\?\)\?\('.l:english.'\|'.l:german.'\)\>', "w") != 0) + let l:temp = inputdialog("Do you want to attach a file? [Hit return] ") + endif + if (l:ic == 0) + set noignorecase + endif + echo +endfunction + +" change subject line +" Before: Subject: old +" After : Subject: New (was: old) +" http://strcat.de/wiki/dotfiles#vim +" map ,sw 1G/^Subject: <CR>:s/Re:/was:/<CR>Wi (<C-O>$)<ESC>0Whi +map <Leader>ns 1G/^Subject: /<CR>:s,\(Subject: \)\(Re: \)*\(.*\)$,\1 (was: \3),<CR>:set nohls<CR>f li + +" Delete 'was' in the Subject. +" Before: Subject: New (was: old) +" After : Subject: New +" http://strcat.de/wiki/dotfiles#vim +map <Leader>dw 1G/^Subject: /<CR>:s, *(was: .*)$<CR>:set nohls<CR>f l + +" http://dollyfish.net.nz/blog/2008-04-01/mutt-and-vim-custom-autocompletion +fun! LBDBCompleteFn(findstart, base) + let line = getline('.') + if a:findstart + " locate the start of the word + let start = col('.') - 1 + while start > 0 && line[start - 1] =~ '[^:,]' + let start -= 1 + endwhile + while start < col('.') && line[start] =~ '[:, ]' + let start += 1 + endwhile + return start + else + let res = [] + let query = substitute(a:base, '"', '', 'g') + let query = substitute(query, '\s*<.*>\s*', '', 'g') + for m in LbdbQuery(query) + call complete_add(printf('"%s" <%s>', escape(m[0], '"'), m[1])) + if complete_check() + break + endif + endfor + return res + endif +endfun +set completefunc=LBDBCompleteFn + +" And this magic by James Vega, which ensures that we only complete with lbdb +" on the recipient lines of the mail header. +inoremap <expr> <C-n> DelegateCompletion(1) +inoremap <expr> <C-p> DelegateCompletion(0) + +fun! DelegateCompletion(next) + if getline('.') =~? '^\%(To\|B\=Cc\):' + return "\x18\x15" + elseif a:next + return "\x0e" + else + return "\x10" + endif +endfun