我有几个实例想要执行以下操作
在文件中:
1234
将光标放在第一个数字上,我想使用 Ctrl-A 来增加数字,以便我得到
2234
代替
1235
是否有内在的 vim 命令来执行此操作?
否则,我应该设置一个快速脚本:
- 带前导和尾随空格的环绕数字
- Ctrl-A 递增
- 删除前导和尾随空格
像这样,然后映射到一个键?
我有几个实例想要执行以下操作
在文件中:
1234
将光标放在第一个数字上,我想使用 Ctrl-A 来增加数字,以便我得到
2234
代替
1235
是否有内在的 vim 命令来执行此操作?
否则,我应该设置一个快速脚本:
像这样,然后映射到一个键?
与大多数 vim 命令一样,增量函数采用前导数字。 1000 ctrl+a会2234如你所愿返回。如果您的所有号码都是 4 位数字,那么这将起作用。或者您可以使用r2which 将光标下的当前字符替换为 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 并完成命令。