I tinkered around a bit more and came up with this code for making Ctrl+J
(justify paragraph) work, even with quoted text.
It assumes that ^[> ]*$ is the paragraph separator, meaning that any line
which is blank or only contains '>' and ' ' separates a paragraph. Here is
the full code for making Ctrl+J work:
[pmak@lina pmak]$ cat .muttvimrc
function! PrevPara()
if !search("^[> ]*$", 'bW')
1
endif
endfunction
function! NextPara()
if !search("^[> ]*$", 'W')
$
endif
endfunction
set formatoptions=tcqv
set comments=nb:>
set tw=75
set cpo-=<
map { :call PrevPara()<ENTER>
map } :call NextPara()<ENTER>
map <C-J> {gq}j
[pmak@lina pmak]$ egrep editor .muttrc
set editor="vim -u ~/.muttvimrc +/^$"
I'll keep refining this as I use it more and find any quirks. (If anyone
here actually uses my code and has comments please let me know. :)
BTW, regarding those other suggestions involving binding "fmt" or "par"
to a key, isn't it slow to fork a process every time you press the
rejustify key, or is that overhead negligible?