On Fri, Oct 25, 2013 at 6:01 PM, Paul Isambert <[email protected]> wrote:

> stosss <[email protected]> a écrit:
> > Starting out with a number at the beginning of the line and want to
> change
> > it from a single or double digit to a triple digit such as 1 to 001 or 10
> > to 010 and 100 stays as is
> >
> > :%s@\(\d\+\)@\=printf("%03d", submatch(1))@
> >
> > I also want to add some more information around it such as
> >
> > :%s@\(\d\+\)@<span="b001c001v\1">\1</span>
> >
> > It would be better to be able to do it in one pass so that I end up going
> > from
> >
> > 1
> >
> > to
> >
> > <span="b001c001v001">1</span>
> >
> > I can do my second :s first and then do my first :s second.
> >
> > Can I do this all in one pass? I haven't been able to figure out how to
> do
> > what I want using the submatch example above and get the final result
> that
> > I want.
>
> Why not simply combine the two?
>
>     :%s@\d\+@\='<span="b001c001v' . printf("%03d", submatch(0)) . '">' .
> submatch(0) . '</span>'
>
> Not the nicest line in the world, but it should work (note that I’ve
> removed submatches to save a few characters).
>
> Best,
> Paul
>
> Excellent! Combining is what I was wanting. Thank you for showing me that.

Jack

-- 
-- 
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