:h submatch( includes Example: :s/\d\+/\=submatch(0) + 1/ This finds the first number in the line and adds one to it.
Needing to increment several fields consisting of underscore and a single digit (_\d) I modified the above along the lines of s/_\(\d\)/\='_'.submatch(1) + 1/gc most of which merely replaced the entire field with '1' Thinking the problem might be a conflict between the types, string and number, I tried s/_\(\d\)/\="_".nr2char(submatch(1) + 1)/gc then s/_\(\d\)/\="_".nr2char(submatch(1) + 31)/gc and finally success with s/_\(\d\)/\="_".nr2char(submatch(1) + 49)/gc which is limited to operations on just a single digit. So, is there a generally reliable method of performing arithmetic on numeric fields embedded in a larger string pattern with :s? Thank you. -- Graham Lawrence -- -- 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 vim_use+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.