Chris Lott <[email protected]> a écrit:
> I have a document with the following kind of text:
> 
>     ## 3. foo
> 
>     various text here
> 
>     ## 1. foo
> 
>     more text here
> 
> What I would like to do is search for all the headers (## X. etc) and
> replace them with the proper sequential numbering. How do I approach
> this?

Something like this:

    function! s:renumber ()
      let [a:count, a:lineno, a:last] = [0, 1, line('$')]
      while a:lineno <= a:last
        let a:line = getline(a:lineno)
        if a:line =~ '^##\s\+\d\+\.'
          let a:count += 1
          call setline(a:lineno, substitute(a:line, '^##\s\+\zs\d\+\ze\.', 
a:count, ''))
        endif
        let a:lineno += 1
      endwhile
    endfunction
    com! Renumber call s:renumber()

I’m sure some “vizard” can do the same without using a counter like
a:count (and, of course, with :substitute).

Best,
Paul

-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to