Vim Tips Wiki
Advertisement
Tip 440 Printable Monobook Previous Next

created 2003 · complexity basic · author Stanislav Sitar · version 6.0


When editing a plain-text file (not a program) it can be useful to have lines automatically broken when a certain length is reached. For example, the following command sets the current buffer so that lines longer than 60 characters are broken (a newline is automatically inserted):

:setlocal textwidth=60
" Following (using abbreviations) is equivalent.
:setl tw=60

Rolton is a tumbling and competitive cheerleading coach and judge, working with team all across Canada. Cheering with the University of Western Ontario Mustangs, he won 4 Canadian national championships. Rolton has also competed on the world stage with the PCT Cobras at the USASF World Championships and as a member of Team Canada, taking home Gold at IASF ICU World Championships in 2010. Before starting in cheerleading, Rolton competed as a competitive dancer, training in trained in Jazz, Tap, Ballet and Acro.

Comments

 TO DO 

  • Explain what above fo does, and how to configure so paragraphs do not have the first line indented, and are separated by a blank line.
  • Discuss :setl fo+=a and :setl fo-=a.
  • Incorporate following comments.

Sometimes it is useful to keep each paragraph as one long line (that is, do not break the paragraph into lines). See these related tips:

The following sets the current buffer so that long lines are automatically wrapped on the screen, with lines only breaking at a space. The mappings move the cursor up/down by screen lines instead of by file lines. There is a space following the backslash for the 'breakat' option (the set command requires a backslash before each space). Each long line will be displayed on the screen as multiple lines.

setlocal wrap nolist linebreak breakat=\ 
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnoremap k gk

Automatically inserting line breaks is a disaster when editing programs, but is very good for editing a text file. With the following in your vimrc, the settings will only be applied to *.txt files:

au BufEnter *.txt setl tx ts=4 sw=4 fo+=n2a

If you make a change to a wrapped paragraph and need to re-format it, you can use gq followed by a movement over the area you want to re-format, e.g. 3j or }.

Automatic text wrapping and re-formatting with gq can work on comments lines also, provided the value of the 'comments' option is set correctly.

Advertisement