" Nuke nested levels of quotations map ,nq :%g/^>>/d " Clear Empty Lines map ,cel :%s/^\s\+$//e map ,cqoq :%s/^>\s\+/> /e " remove all > On blah... stuff left behind in quoted text - huggie nmap ,cqmh :g/^\([>*] \)\+On.*wrote:$/d " Clear blank lines after my On foo wrote: map ,db /^On.*wrote:$/e " Kill more than 1 empty quoted lines nmap ,ceql :g/^\(>\)\{2,}\s*$/d nmap ,cqel %s/^> \s*$// " Kill power quote - change wierd "> blah>" to >> nmap ,kpq :s/^> *[a-zA-Z]*>/>>/e " kill space runs (3 or more spaces become 2 space) nmap ,ksr :%s/ \+/ /g " remove quoted sig map ,rq /^> *-- " ,Sl = "squeeze lines" " Turn all blocks of empty lines (within current visual) " into *one* empty line: map ,dl :g/^$/,/./-j " Condense multiple Re:'s " map ,re 1G/^Subject:>CR<:s/\(Re: \)\+/Re: /e map ,re call MailCondenseRe() " Sven's wondeful change subject macro map ,cs 1G/^Subject: yypIX-Old--W vmap ,qp :s/^/> / " Clean the Email Function function! CleanEmail() " Remove empty quoted lines normal ,ceql " Remove the empty lines after an unquoted On blah stuff normal ,db " Clear empty lines and turn into space to write in normal ,cqel " Remove blocks of empty lines normal ,dl " Remove quoted On blah stuff normal ,cqmh " Remove many Re:'s from the Subject line normal ,re endfun function! Fixflowed() " save position let l = line(".") let c = col(".") normal G$ " whiles are used to avoid nasty error messages " add spaces to the end of every line while search('\([^]> :]\)\n\(>[> ]*[^> ]\)','w') > 0 s/\([^]> :]\)\n\(>[> ]*[^> ]\)/\1 \r\2/g endwhile " now, fix the wockas spacing from the text while search('^\([> ]*>\)\([^> ]\)','w') > 0 s/^\([> ]*>\)\([^> ]\)/\1 \2/ endwhile " now, compress the wockas while search('^\(>>*\) \(>>*\( [^>]\)*\)', 'w') > 0 s/^\(>>*\) \(>>*\( [^>]\)*\)/\1\2/ endwhile " restore the original location, such as it is execute l . " normal " . c . "|" endfun function DelSig() let modified=&modified let lnum = line(".") let cnum = col(".") normal! H let scrtop = line(".") normal! G execute '?-- $?,$d' call cursor( scrtop, 0 ) normal! zt call cursor( lnum, cnum ) if modified == 0 set nomodified endif endfun nnoremap ,ds :silent call DelSig() set list set listchars=trail:_,tab:>. set expandtab set textwidth=75 set comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- set noshowmatch set ft=headers syn on " Autoflow paragraphs you edit as you type, no more gq! set fo=aw2t " mangels cool block quoting function function! VBlockquote(...) range " put `| ' at beginning of line exe a:firstline.",".a:lastline."s/^/| /" " remove trailing whitespaces exe a:firstline.",".a:lastline.'s/^| $/|/e' " generate tail exe a:lastline."put ='`----'" " set mark normal m' " generate title let @z = ',----' if (a:0 != 0) " -> extra argument a:1 let @z = @z."[ ".a:1." ]" endif exe a:firstline."put! z" " jump back to mark normal '' endfunction vmap bq :call VBlockquote(" silent call CleanEmail()