How can I wrap text to some length in Vim?

VimIndentation

Vim Problem Overview


Let's speak of relative measures. My Vim looks like:

aaaaaaaaaaaaa 
bbbbbbbbbbbbb 
ccccccccccccc 
etc

I would like it to be smaller:

aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc

How can I get it? And how can I manage setting the length of such a block?

Vim Solutions


Solution 1 - Vim

You can actually do two things:

  1. Let vim format (i.e.change) your text to have shorter lines, by inserting linebreaks
  2. Leave lines as they are, but display them wrapped

Which do you want?

Option 1 would be achieved by setting textwidth (for example :set textwidth=30 (from Swaarop's answer)). Then you can reformat your text by highlighting it (in visual mode) and typing gq. (textwidth can be abbreviated as tw, thus :set tw=30.)

Option 2 can be toggled by running :set wrap / :set nowrap. This will wrap lines which are too long for the window.

Both are independent.

Solution 2 - Vim

Once you set 'textwidth', you can select text with visual mode and press gq to wrap it nicely (you can also use Q on some older/legacy configurations).

A few useful tips:

gqq (wrap the current line)
gq} (wrap this 'paragraph', i.e. until the next blank line)
:h gq

Solution 3 - Vim

Using fold(1) is one possibility:

:%!fold -w5 

Result:

aaaaa
aaaaa
aaa 
bbbbb
bbbbb
bbb 
ccccc
ccccc
ccc

Solution 4 - Vim

:set textwidth=30

Solution 5 - Vim

If you have text without spaces that you want to break at a certain length, it is neither necessary to use external fold nor write your own formatexpr.

:%s/\(.\{80\}\)/\1\r/g

will break all lines at 80 chars.

Solution 6 - Vim

First, set textwidth to 5 with

:set tw=5

Then, press gqap to format a paragraph

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLéo Léopold Hertz 준영View Question on Stackoverflow
Solution 1 - VimsleskeView Answer on Stackoverflow
Solution 2 - VimVlad DogaruView Answer on Stackoverflow
Solution 3 - VimFritz G. MehnerView Answer on Stackoverflow
Solution 4 - VimSwaroop C HView Answer on Stackoverflow
Solution 5 - VimkthyView Answer on Stackoverflow
Solution 6 - VimcjadeveloperView Answer on Stackoverflow