我有几个实例想要执行以下操作
在文件中:
1234
将光标放在第一个数字上,我想使用 Ctrl-A 来增加数字,以便我得到
2234
代替
1235
是否有内在的 vim 命令来执行此操作?
否则,我应该设置一个快速脚本:
- 带前导和尾随空格的环绕数字
- Ctrl-A 递增
- 删除前导和尾随空格
像这样,然后映射到一个键?
我有几个实例想要执行以下操作
在文件中:
1234
将光标放在第一个数字上,我想使用 Ctrl-A 来增加数字,以便我得到
2234
代替
1235
是否有内在的 vim 命令来执行此操作?
否则,我应该设置一个快速脚本:
像这样,然后映射到一个键?
与大多数 vim 命令一样,增量函数采用前导数字。 1000 ctrl+a
会2234
如你所愿返回。如果您的所有号码都是 4 位数字,那么这将起作用。或者您可以使用r2
which 将光标下的当前字符替换为 a 2
,但这可能过于具体。
如果你需要你的脚本,你可以录制一个宏。
qaa[space][esc]h[ctrl+a]lx
分解:
qa
- 开始录制q
宏并保存注册a
a[space][esc]
- 在数字后添加一个空格
h
- 移回号码
ctrl+a
- 添加一个
lx
向右移动并删除空间。
您不需要添加前导空格,因为正如您注意到的那样,该ctrl+a
函数作用于整个数字,并且总是加 1。
你可以这样做s<C-r>=<C-r>"+1<Enter>
。
然后,您可以将其映射到其他东西,例如nnoremap g<C-a> s<C-r>=<C-r>"+1<cr>
(您需要使用在此法线贴图Ctrl-vCtrl-r中插入s)。<C-r>
s
- 删除光标下的字符并开始插入
<C-r>=
- 开始表达式评估。
<C-r>"
- 将未命名寄存器的内容放入
有关这些的更多信息,请参见 :help i_CTRL-r。
+1<Enter>
- 将值加 1 并完成命令。