vim command to restructure/force text to 80 columns

Set textwidth to 80 (:set textwidth=80), move to the start of the file (can be done with Ctrl-Home or gg), and type gqG.

gqG formats the text starting from the current position and to the end of the file. It will automatically join consecutive lines when possible. You can place a blank line between two lines if you don't want those two to be joined together.


You can use gq with any movement operators. For example, if you only want to reformat to the end of the current line (i.e. to wrap the line that your cursor is on) you can use gq$

You can also reformat by selecting text in visual mode (using `v and moving) and then typing gq.

There are other options for forcing lines to wrap too.

If you want vim to wrap your lines while you're inserting text in them instead of having to wait till the end to restructure the text, you will find these options useful:

:set textwidth=80
:set wrapmargin=2

(Don't get side-tracked by wrap and linebreak, which only reformat the text displayed on screen, and don't change the text in the buffer)


Michael's solution is the key, but I most often find I want to reformat the rest of the current paragraph; for this behavior, use gq}.

Tags:

Vim

Word Wrap