我有几个实例,我想做以下
在档案中:
1234
当光标位于第1位时,我想使用Ctrl-A增加数字以便我得到
2234
而不是
1235
是否有内在的vim命令来执行此操作?
否则,我应该设置一个快速脚本:
像这样,然后映射到一个键?
答案 0 :(得分:8)
增量函数采用大多数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。
答案 1 :(得分:4)
您可以s<C-r>=<C-r>"+1<Enter>
执行此操作。
然后您可以将其映射到其他内容,例如nnoremap g<C-a> s<C-r>=<C-r>"+1<cr>
(您需要使用 Ctrl-v Ctrl-r 来插入{{ 1}}在这个法线贴图中。)
<C-r>
- 删除光标下的字符并开始插入
s
- 开始表达评估。
<C-r>=
- 将未命名寄存器的内容放入
请参阅:帮助i_CTRL-r获取更多相关信息。
<C-r>"
- 将值加1并完成命令。