私は数字でこのテキストを持っています:
My numbers are 04, and 0005
My numbers are 05, and 0006
My numbers are 06, and 0035
My numbers are 07, and 0007
My numbers are 08, and 0009
これは、選択/ブロック選択/列の数値をインクリメントまたはデクリメントするために常に使用したコードです。上記のテキストの最後の4つの数値を8でインクリメントします。
'<,'>s/\%V\<\d\{4}\>/\=submatch(0)+8/g
しかし、私は今日、それが奇妙なことをすることに気づきました。これは出力です:
My numbers are 04, and 13
My numbers are 05, and 14
My numbers are 06, and 37 <---
My numbers are 07, and 15
My numbers are 08, and 17
- 先行ゼロを削除します(先行ゼロがある場合はそれらを保持し、先行ゼロがない場合は追加しません)
- 2を追加した37を除くすべての数値に8を追加しました。(なぜですか?)
先行ゼロを失うことなく、選択(またはブロック選択)から数値を加算/減算する正規表現を見つけるのを誰かが助けてくれますか?
注:
コントロールA +コントロールxは先行ゼロを保持し、希望どおりに機能することに注意しましたが、次のようになり
ました。-代替コマンド('<、'> s /)では使用できないことを確認しました
-そしてI番号のリストにpe200を追加する方法がわからない(200 x?)