Vim Tips Wiki
Advertisement
Tip 441 Printable Monobook Previous Next

created March 11, 2003 · complexity basic · author Xiangjiang Ma · version 6.0


In insert mode, I would like to

  1. Keep typing without auto-wrap (good for editing vimrc and c).
  2. Wrap long line at will (good for email and text).

Following is the map I figured out, using <C-B> in this example:

set sr fo=roqm1 tw=64
im <C-B> <C-O>:setl sr! fo<C-R>=strpart("-+",&sr,1)<CR>=tc<CR>_<BS><Right>

By default, it goes without auto-wrap. If I want, I can type <C-B> to toggle auto-wrap. Another <C-B> toggles back.

Basically it toggles two settings:

:set fo+=tc<CR>
:set fo-=tc<CR>

strpart() is used for toggling; "sr" is choosing for no good reason; "_" can be any char; <BS><Right> is needed to toggle this action.

Comments

I found on Unix, we don't need the last part of the map.

im <C-B> <C-O>:setl sr! fo<C-R>=strpart("-+",&sr,1)<CR>=tc<CR>

Just found that it is not related Unix or Windows.

It is a settting of virtualedit. For current vim version (6.1), if we

:set virtualedit=insert

We need the last part in the map, otherwise, we don't need it.


Advertisement