Vim命令仅在较长数字字符串中的光标位置增加数字位数?

Vim命令仅在较长数字字符串中的光标位置增加数字位数?,vim,Vim,我有几个例子,我想做以下几点 存档: 1234 当光标位于第一个数字时,我想使用Ctrl-A增加数字,以便 2234 而不是 1235 是否有内部vim命令来执行此操作 否则,我应该设置一个快速脚本: 带前导和尾随空格的环绕数字 按Ctrl-A键进行增量 删除前导空格和尾随空格 像这样,然后映射到一个键?增量函数采用一个前导数字,就像大多数vim命令一样1000 ctrl+a将返回您想要的2234。如果你所有的数字都是4位数,那么这就行了。或者可以使用r2,将光标下的当前字符替换为2,但这

我有几个例子,我想做以下几点

存档:

1234
当光标位于第一个数字时,我想使用Ctrl-A增加数字,以便

2234
而不是

1235
是否有内部vim命令来执行此操作

否则,我应该设置一个快速脚本:

  • 带前导和尾随空格的环绕数字
  • 按Ctrl-A键进行增量
  • 删除前导空格和尾随空格

  • 像这样,然后映射到一个键?

    增量函数采用一个前导数字,就像大多数vim命令一样
    1000 ctrl+a
    将返回您想要的
    2234
    。如果你所有的数字都是4位数,那么这就行了。或者可以使用
    r2
    ,将光标下的当前字符替换为
    2
    ,但这可能太具体了

    如果需要脚本,可以录制宏

    qaa[space][esc]h[ctrl+a]lx

    细分:

    qa
    -开始录制
    q
    宏并保存到寄存器
    a

    a[space][esc]
    在数字后面添加空格

    h
    -移回数字

    ctrl+a
    -添加一个

    lx
    向右移动并删除空格


    您不需要添加前导空格,因为正如您所注意到的那样,
    ctrl+a
    函数作用于数字作为一个整体,并且总是添加1。

    您可以通过
    s=“+1
    这样做

    然后,您可以将其映射到其他对象,如
    nnoremap g s=“+1
    (您需要使用Ctrl-vCtrl-r将
    插入此普通映射中)

    一步一步地:
    s
    -删除光标下的字符并开始插入

    =
    -开始表达式求值

    -将未命名寄存器的内容放入

    请参阅:帮助i\u CTRL-r以了解有关这些的更多信息


    +1
    -向值中添加1并完成命令。

    这里已经讨论过这一点(找不到问题)。它不能比
    r
    更简单、更快(其中
    是新的数字)。我将澄清,我想将此想法扩展到宏或脚本,因此,如果我有,比如说100个数据点,我需要更一般的内容,我将编辑问题以反映这一点。
    yl
    步骤是多余的,因为
    s
    删除保存在默认寄存器中的字符。因此,
    s
    Ctrl
    +
    R
    =@“+1
    输入
    Esc
    命令就足够了。