set formatoptions+=1rnmBa " Reformat lines (getting the spacing correct) {{{ fun! TeX_fmt() if (getline(".") != "") let save_cursor = getpos(".") let op_wrapscan = &wrapscan set nowrapscan let par_begin = '^\(%D\)\=\s*\($\|\\begin\|\\end\|\\\[\|\\\]\|\\\(sub\)*section\>\|\\item\>\|\\NC\>\|\\blank\>\|\\noindent\>\)' let par_end = '^\(%D\)\=\s*\($\|\\start\|\\stop\|\\Start\|\\place\|\\\(sub\)*section\>\|\\item\>\|\\NC\>\|\\blank\>\)' try exe '?'.par_begin.'?+' catch /E384/ 1 endtry norm V try exe '/'.par_end.'/-' catch /E385/ $ endtry norm gq let &wrapscan = op_wrapscan call setpos('.', save_cursor) endif endfun nmap Q :call TeX_fmt() " }}}