I want to reformat my file so the max line width is 79. I did :set tw=79
and gggqG
and the results weren't what I expected. When a line is less than 79 col, characters from the line below it move up and lines with over 79 col don't break into two lines.
edit: Well I was semi-mistaken in that it DOES break lines over 79 except in the line with asterisks.
--CONVENTIONS**************************************************************************************
In addition it still moves characters up when the line has <79.
One possible solution, although not the best one.
Undefine formatexpr
and let external fold
program to format your text to 79 characters width.
:set formatexpr=
:set formatprg=fold\ -w\ 79
And now:
gg # Go to beginning of file.
gq # Format until...
G # End of file.
And last remove those carriage returns (^M):
:%s/\r//g
In my test it changed some accented characters and some other lines were mangled, but try it yourself. Else you may write your own format function and use it with formatexpr
option.