X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5d2073d11c96de3eafea168488684aed93daee4d..227f50b7a32d9dc0b7392f8f45f3cba7bf8843cf:/.vim/ftplugin/mail.vim diff --git a/.vim/ftplugin/mail.vim b/.vim/ftplugin/mail.vim index b5d239b..074b6eb 100644 --- a/.vim/ftplugin/mail.vim +++ b/.vim/ftplugin/mail.vim @@ -1,33 +1,13 @@ -nmap :w:%!~/.bin/mail/mailplate --keep-unknown official -nmap :w:%!~/.bin/mail/mailplate --keep-unknown private -nmap :w:%!~/.bin/mail/mailplate --keep-unknown debian -nmap :w:%!~/.bin/mail/mailplate --keep-unknown ul -nmap :w:%!~/.bin/mail/mailplate --keep-unknown sudetia -nmap :w:%!~/.bin/mail/mailplate --auto --keep-unknown 2>/dev/null - -" Checking attachments in edited emails for use in Mutt: warns user when -" exiting -" by Hugo Haas - 20 June 2004 -" based on an idea by The Doctor What explained at -" -" http://www.vim.org/scripts/download_script.php?src_id=3165 -autocmd BufUnload mutt-* call CheckAttachments() -function! CheckAttachments() - let l:english = 'attach\(ing\|ed\|ment\)\?\|included with this mail' - let l:french = 'attach\(e\|er\|ée\?s\?\|ement\|ant\)' - let l:german = 'an\(gehängt\|hängsel\)\|bei\(gefügt|lage\)\|\(im\|siehe\)\_sanhang' - 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 +nmap :w:%!mailplate --keep-unknown official +nmap :w:%!mailplate --keep-unknown private +nmap :w:%!mailplate --keep-unknown pmv +nmap :w:%!mailplate --keep-unknown pobox +nmap :w:%!mailplate --keep-unknown debian +nmap :w:%!mailplate --keep-unknown debconf +nmap :w:%!mailplate --keep-unknown uniwh +nmap :w:%!mailplate --keep-unknown mtfk +nmap :w:%!mailplate --keep-unknown sudetia +nmap :w:%!mailplate --auto --keep-unknown 2>/dev/null " change subject line " Before: Subject: old @@ -40,4 +20,47 @@ map ns 1G/^Subject: /:s,\(Subject: \)\(Re: \)*\(.*\)$,\1 (was: \3),< " Before: Subject: New (was: old) " After : Subject: New " http://strcat.de/wiki/dotfiles#vim -map ;dw 1G/^Subject: /:s, *(was: .*)$:set nohlsf l +map dw 1G/^Subject: /:s, *(was: .*)$:set nohlsf 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 DelegateCompletion(1) +inoremap DelegateCompletion(0) + +fun! DelegateCompletion(next) + if getline('.') =~? '^\%(To\|B\=Cc\):' + return "\x18\x15" + elseif a:next + return "\x0e" + else + return "\x10" + endif +endfun