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
- Keep typing without auto-wrap (good for editing vimrc and c).
- 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.