特に技術的tipsでもなんでもないのですが、面白かった&謎&不便なので。
[追記]
後ろの方に追記しました。
おんなじ問題を抱えてこの記事にたどり着いたひとのお役に立てればと思います・・・
tl;dr;
以下のファイルにて、各行でCtrl+A(increment number)を使用する。
Foo007,
Foo017,
Foo077,
普通のVim
Foo008,
Foo018,
Foo078,
IdeaVim
Foo010,
Foo020,
Foo0100,
くわしく
IdeaVimにおいて、数値は2進数、8進数、16進数かどうかを判定してincrementしているようです。
- 実装 -> https://github.com/JetBrains/ideavim/blob/0015a4357eb5502faaed20e8238d83a91537b5af/src/com/maddyhome/idea/vim/group/ChangeGroup.java#L1691
- テストケース -> https://github.com/JetBrains/ideavim/blob/b595dfd44320a119d52bda1a8216450e2985b3c0/test/org/jetbrains/plugins/ideavim/action/ChangeNumberActionTest.java#L32
普通のVim(少なくとも私の手元にあるVim 8.0.1420 + MacVim)は、全ての数値を10進数として扱うので、007の次は008になります。
普通の開発では007の次は008であってほしいことのほうが多いような気がします。
バグ報告投げてみたんですが、果たして反応は返ってくるのでしょうか…?
https://youtrack.jetbrains.com/issue/VIM-1418
追記
nrformats
という設定で、8進数認識するか設定可能でした。
デフォルトでは、
:set nrformats=octal,hex
になっているので、
:set nrformats=hex
としておけば良いです。
デフォルトでoctalいれてほしくないですが……