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