> I want to increase the number in this format "/ddd" by one but also keep
> "/".
> But the following command doesn't work:
> $s/\/\([1-9]\+\)/\/\=submatch(1)-1)/g
> Can anyone give a tip?
In addition to what ZyX's comments (particularly about the "\="
needing to be at the beginning of the replacement), I'd use the
"\zs" to mark the beginning of what I want to replace (which also
allows you to tidy up the regexp by not needing "\(...\)" wrapped
around), and use an alternate delimiter to obviate escaping:
:%s@/\zs[1-9]\+@\=submatch(0)-1@g
A few other things of note:
- the lack of "0" is suspicious, so I expect you mean
[1-9][0-9]* " positive numbers
[0-9]\+ " non-negative numbers
- you say you want "increase" the number, but you subtract 1 from
it (easy fix...just change "-" to "+")
- your initial expression has an extra close-paren that doesn't
seem to have a matching open-paren. That may have been a mis-key
when transcribing.
Hope that gives you both a solution and a bit of understanding
regarding what it's doing.
-tim
--
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
No comments:
Post a Comment