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 set list set listchars=trail:_,tab:>. set expandtab set textwidth=100 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("