--- /dev/null
+setlocal textwidth=68
+setlocal formatoptions-=o
+setlocal formatoptions-=r
+setlocal formatoptions-=l
+setlocal formatoptions+=a
+setlocal formatoptions+=w
+setlocal formatoptions+=n
+setlocal formatexpr=
+
+setlocal comments=n:>
+
+"setlocal spell
+
+" augroup tsperrorinsert
+" au!
+" augroup END
+" match none /\s*$/
+" augroup listinsert
+" au!
+" augroup END
+" setlocal list&
+
+" Dynamically set format options, depending on where you are in a
+" mail, idea from Teemu Likonen:
+" http://groups.google.com/group/vim_use/msg/f59e5c1adc6be2b3
+
+" let s:defaults = "setlocal fo=".&fo
+" " tw=".&tw." ts=".&ts." sts=".&sts." sw=".&sw." fo=".&fo
+" execute s:defaults
+" let b:MailAreaDetect=1
+"
+" nnoremap <buffer><silent> <F9> :call <SID>MailAreaDetect_Switch(0)<CR>
+" inoremap <buffer><silent> <F9> <C-\><C-O>:call <SID>MailAreaDetect_Switch(1)<CR>
+"
+" function! s:MailAreaDetect_Switch(vmode)
+" if b:MailAreaDetect
+" silent call <SID>MailAreaDetect_Off()
+" let b:MailAreaDetect=0
+" echo 'MailAreaDetect Off'
+" else
+" silent call <SID>MailAreaDetect_On()
+" let b:MailAreaDetect=1
+" echo 'MailAreaDetect On'
+" endif
+" endfu
+"
+" function! s:MailAreaDetect_On()
+" silent autocmd! MailAreaDetect CursorMoved,CursorMoved
+" \ <buffer> call <SID>AreaOptions()
+" let b:MailAreaDetect=1
+" endfunction
+"
+" function! s:MailAreaDetect_Off()
+" silent autocmd! MailAreaDetect
+" execute s:defaults
+" let b:MailAreaDetect=0
+" endfunction
+"
+" augroup MailAreaDetect
+" autocmd!
+" call <SID>MailAreaDetect_On()
+" augroup END
+"
+" function! s:AreaOptions()
+" execute s:defaults
+"
+" let s:synCur = synIDattr(synID(line("."),1,0),"name")
+" let s:synNext = synIDattr(synID(line(".")+1,1,0),"name")
+"
+" if s:synNext =~ '^mailQuote' && s:synCur == '' && getline('.') =~ '^.'
+" " elseif getline('.') =~ '^\s*[^>]' && getline(line('.')+1) =~ '\m^\s*>'
+" setlocal fo-=a
+" "echo 'Quotation leader (fo='.&fo.')'
+" elseif s:synCur =~ '^mailQuote'
+" " elseif getline('.') =~ '\m^\s*>'
+" setlocal fo-=a
+" "echo 'Quotation (fo='.&fo.')'
+" elseif <SID>CheckArea('\m^--- .*\n^+++ ','\v(^$|\n^-- $)')
+" setlocal fo-=a fo-=w fo-=t noet
+" "echo 'Patch (fo='.&fo.')'
+" elseif s:synCur == '' && s:synNext =~ '^mailSignature'
+" " elseif getline(line('.')+1) =~ '\m^-- $'
+" setlocal fo-=a fo-=w fo-=t
+" "echo 'Last line before signature (fo='.&fo.')'
+" elseif s:synCur =~ '^mailSignature'
+" " elseif <SID>CheckArea('^-- $','^$')
+" setlocal fo-=a fo-=w fo-=t
+" "echo 'Signature (fo='.&fo.')'
+" elseif s:synCur =~ '^mail'
+" " if <SID>CheckArea('\v^From( |: ).*\n','\v^$')
+" setlocal fo-=a fo-=w fo-=t
+" "echo 'Header (fo='.&fo.')'
+" else
+" "echo 'My text (fo='.&fo.')'
+" endif
+" endfunction
+"
+" function! s:CheckArea(start, end)
+" return (search(a:start,'bcnW')-line('.')) >
+" \ (search(a:end,'bnW')-line('.'))
+" endfunction
+
+" function! FixQuotes()
+" let l:i = 0
+" let l:lineNxt = getline(l:i)
+" let l:synNxt = synIDattr(synID(l:i,1,0),"name")
+" while l:i < line('$')-1
+" let l:lineCur = l:lineNxt
+" let l:synCur = l:synNxt
+" let l:lineNxt = getline(l:i+1)
+" let l:synNxt = synIDattr(synID(l:i+1,1,0),"name")
+" if l:synCur =~ '^mailQuote' && l:lineCur =~ '\w.*\S$' &&
+" \ l:synNxt =~ '^mailQuote' && l:lineNxt =~ '\w'
+" call setline(l:i, l:lineCur . ' ')
+" endif
+" let l:i += 1
+" endwhile
+" endfunction
+"
+" augroup fixquotes
+" au!
+" autocmd BufWinEnter $TMPDIR/mutt-* call FixQuotes()
+" augroup END
+
+nmap <buffer> <C-P><F1> :w<CR>:%!mailplate --keep-unknown official<CR>
+nmap <buffer> <C-P><F2> :w<CR>:%!mailplate --keep-unknown pobox<CR>
+nmap <buffer> <C-P><F3> :w<CR>:%!mailplate --keep-unknown tahi<CR>
+nmap <buffer> <C-P><F4> :w<CR>:%!mailplate --keep-unknown toni<CR>
+
+nmap <buffer> <C-P><F5> :w<CR>:%!mailplate --keep-unknown kbkg<CR>
+nmap <buffer> <C-P><F6> :w<CR>:%!mailplate --keep-unknown krafftwerk<CR>
+nmap <buffer> <C-P><F7> :w<CR>:%!mailplate --keep-unknown siby<CR>
+nmap <buffer> <C-P><F8> :w<CR>:%!mailplate --keep-unknown debian<CR>
+
+nmap <buffer> <C-P><F9> :w<CR>:%!mailplate --keep-unknown uniwh<CR>
+nmap <buffer> <C-P><F10> :w<CR>:%!mailplate --keep-unknown mtfk<CR>
+nmap <buffer> <C-P><F11> :w<CR>:%!mailplate --keep-unknown sudetia<CR>
+nmap <buffer> <C-P><F12> :w<CR>:%!mailplate --keep-unknown default<CR>
+nmap <buffer> <F1> :w<CR>:%!mailplate --auto --keep-unknown 2>/dev/null<CR>
+
+" 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
+
+" packadd lbdbq
+"
+" 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
+" setlocal 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
+
+function! WriteMailBackup()
+ let l:tmpdir = fnameescape(expand('$TMPDIR')) || '/tmp'
+ let l:tgtdir = l:tmpdir . '/mail-backups'
+ call mkdir(l:tgtdir, "p", 0o700)
+ let l:modified = &modified
+ let l:filename = l:tgtdir . '/' . strftime('%Y-%m-%d-%H%M%S') . '.msg'
+ exe 'silent update! ' . l:filename
+ if 0 && l:modified
+ echo 'Backup written to ' . l:filename
+ endif
+endfunction
+autocmd BufWritePre <buffer> call WriteMailBackup()
+
+let g:markdown_in_mail = 1
+runtime! ftplugin/markdown.vim
+
+runtime! greeting_abbrevs.vim