5.9. 技巧10——使用计数来做简单的算术——数字格式
5.9 技巧10——使用计数来做简单的算术——数字格式
007后跟着什么?这不是一个詹姆士邦德的笑话。我是在问如果向007这个数字加1,你期望得到什么结果?如果你回答008,那么当对带有前导0的任意数字使用 Vim 的 <C-a> 命令时,你可能会感到惊讶。与某些编程语言的约定一样 ,Vim 将带有前导0的数字解释为八进制格式,而不是十进制。在八进制数字系统中,007 + 001 = 010,这看起来像一个十进制的10,但是实际上是一个八进制的8,是不是感觉到好困惑?
如果经常和八进制数字打交道,Vim的默认行为可能会适合你。如果不是,你可能想往 vimrc 文件中添加下面这一行:
set nrformats=
这将使 Vim 把所有的数字按十进制处理。不管它们是不是用0来填充。
nrformats 应该是 number recognition formats 的缩写,这定义了 vim 在使用 CTRL-A 和 CTRL-X 命令时使用什么进制的数字作为基数。默认是 "bin,octal,hex"