递增和递减数字和字母字符

在正常模式下,我们可以使用 <C-a> 在光标处或之后增加行上的最近数字,并使用 <C-x> 递减。在以下示例中,光标位置由^指示。

递增和递减数字

for i in range(11):
      ^

<C-x> 减少数量:

for i in range(10):
                ^

10<C-a> 通过 10 递增:

for i in range(20):
                ^

递增和递减字母字符

要使增量和减量也适用于字母,可以使用 ex 命令:set nrformats+=alpha 或将 set nrformats+=alpha 添加到 .vimrc

增量示例:

AAD
 ^ 

<C-a> 将它递增到 B

ABD
 ^ 

减量示例:

ABD
  ^ 

<C-x> 减少 DC

ABC
  ^ 

启用字母递增/递减时递增和递减数字

请注意,启用递增/递减以使用字母字符意味着在你真正想要修改数字时必须小心不要修改它们。你可以使用 ex 命令:set nrformats-=alpha 关闭字母递增/递减,或者你可以只知道它并确保在递增或递减之前移动到该数字。这是从上面重做工作的“for i in range(11):”示例,同时设置了字母递增/递减:

假设你想将 11 减少到 10 并且字母递增/递减有效。

for i in range(11):
      ^

由于字母递增/递减有效,为了避免修改光标下的字符,首先使用普通模式移动命令 f1(即小写 f 后跟数字 1,向前移动到第一个 1,不要与功能键混淆):

for i in range(11):
               ^

现在,由于光标在数字上,你可以用 <C-x> 减去它。递减时,光标重新定位到数字的最后一位:

for i in range(10):
                ^