A. S. Budden Sent on December 07, 2006: >On 07/12/06, Karsten Gerloff <[EMAIL PROTECTED]> wrote: >> On Wed, Dec 06, 2006 at 02:32:12PM +0000, A. S. Budden wrote: >>> On 06/12/06, Karsten Gerloff <[EMAIL PROTECTED]> wrote: >>>> Hi, >>>> >>>> I'm currently writing a lot of text in vim that will later >>>> need to transfer to a word processor (OpenOffice 2.0 in this >>>> case). >>>> >>>> Since it makes reading easier, I want to make lines wrap at >>>> 66 chars; this has long worked fine with >>>> >>>> set textwidth=66 >>>> >>>> But this inserts hard line breaks (<EOL>), which I don't want >>>> to show up later in the word processor. No luck at vim.org. >>>> So I tried the vim FAQ at >>>> >>>> http://vimdoc.sourceforge.net/vimfaq.html >>>> >>>> and it told me to put the following into my .vimrc: >>>> >>>> :set wrap >>>> :set linebreak >>>> :set textwidth=0 >>>> :set showbreak=>>> >>>> >>>> which works nicely as far as the EOLs are concerned. But the >>>> lines still run over the whole width of the screen. Setting >>>> textwidth=66 re-introduces the unwanted EOLs. >>>> >>>> Any hints? >>> >>> I find that the easiest way is to set tw to whatever you want >>> it to be, write the text and then (just before pasting into >>> OpenOffice): >>> >>> :set tw=10000 >>> gggqG >>> gg"+G >>> >>> To reformat the text with long lines. Assuming formatoptions >>> is set to something sensible, this works a treat. >> >> It does indeed! Thanks for this great hint -- especially useful >> since I already have large amounts of text I need to move into >> OpenOffice. >> >> To make it still more convenient, I turned it into a macro and >> mapped it to F4: >> >> map <F4> :set tw=10000<CR>gggqGgg"+G >> >> The only thing I haven't managed yet is to set textwidth back >> to 66 after that. Simply appending >> >> :set tw=66<CR> > > I haven't tried it, but I imagine you'd need: > > map <F4> :set tw=10000<CR>gggqGgg"+G:set tw=66<CR>gggqG > > see: > > :he gg > :he gq > :he G > > to ensure that the reformatting is done again. You could make it > even more clever by adding something like mq on the start and `q > on the end: it should then return the cursor to it's initial > position. > > :he m > :he ` After setting tw=66, gggqG might not bring the buffer to the "original" formatting -- better to do just do undo after :set tw=66.
:help undo --Suresh
