From: Tim Chase, Wed, October 18, 2006 6:46 am > > > I'm having a mental block, how can I wrap a string via > > substitute() ? > > The following seems to do the trick for me: > > echo substitute(str, '[[:print:]]\{,10}', '&\n', 'g')
This nearly works, but is doubling existing line breaks. The application is this :version pretty-fier: function! Str_wrap(str, len) return substitute(a:str, '[[:print:]]\{,'.a:len.'}','&\n','g') endfunction function! Version() redir @x silent! version redir END " add some line breaks between major sections let @x = substitute(@x, '\n\([+\-]arabic\)', '\n\n\1', '') let @x = substitute(@x, '\n\(\s\+system\)', '\n\n\1', '') let @x = substitute(@x, '\n\(Compilation\)', '\n\n\1', '') let @x = substitute(@x, '\n\(Linking\)', '\n\n\1', '') " wrap echo Str_wrap(@x, 70) endfunction command! Version call Version() -- Steve Hall [ digitect dancingpaper com ]