Edited at

IdeaVimのCtrl+A(inclement number)が、007を8進数と認識してしまう。[追記あり]

More than 1 year has passed since last update.

特に技術的tipsでもなんでもないのですが、面白かった&謎&不便なので。

[追記]

後ろの方に追記しました。

おんなじ問題を抱えてこの記事にたどり着いたひとのお役に立てればと思います・・・


tl;dr;

以下のファイルにて、各行でCtrl+A(increment number)を使用する。

  Foo007,

Foo017,
Foo077,


普通のVim

  Foo008,

Foo018,
Foo078,


IdeaVim

  Foo010,

Foo020,
Foo0100,


くわしく

IdeaVim において、数値は2進数、8進数、16進数かどうかを判定してincrementしているようです。

普通の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いれてほしくないですが……

https://github.com/JetBrains/ideavim/blob/0dda443cc8febc17d7a0d7f45288981da3df69be/doc/set-commands.md