我有一段文字,如下所示 -
blah blah 1 blah blah
blah 1 blah 1 blah
我想多次复制它,但每次粘贴时都会增加整数(上面的1)。像 -
这样的东西blah blah 1 blah blah
blah 1 blah 1 blah
blah blah 2 blah blah
blah 2 blah 2 blah
blah blah 3 blah blah
blah 3 blah 3 blah
我把光标放在块的开头,然后用'qa'开始在reg a中记录一个宏 并输入'y2jp ^ A j0 ^ A w ^ A k0'。用英语 - 复制并粘贴块,递增每个数字并返回到新粘贴块的开头,以便可以再次运行宏。
一切正常,除了最后的'k0'部分,它不会将光标移动到新粘贴的块的开头。谁能指出我做错了什么?
修改
@sehe当我运行你建议的宏时,我得到了关注 -
等等等等等等等等等等 啊,等等,等等 blah blah 1 blah blahj0.w.yk0 blah 1 blah 1 blah在^ A之后看起来vim仍处于插入模式 : - /
答案 0 :(得分:4)
我认为有更好的方法来实现你正在做的事情,而我实际上并没有看到你出错的细节,只是这里有一个对我有用的宏:
2Yjp ^ A j0.w.yk0
我认为你正在反向做事(在顶部插入?) - 可能的问题是光标在第一行之前无法向上移动(?未经测试)。
无论如何,20@a
之后我得到了:
blah blah 1 blah blah
blah 1 blah 1 blah
blah blah 2 blah blah
blah 2 blah 2 blah
blah blah 3 blah blah
blah 3 blah 3 blah
blah blah 4 blah blah
blah 4 blah 4 blah
blah blah 5 blah blah
blah 5 blah 5 blah
blah blah 6 blah blah
blah 6 blah 6 blah
blah blah 7 blah blah
blah 7 blah 7 blah
blah blah 8 blah blah
blah 8 blah 8 blah
blah blah 9 blah blah
blah 9 blah 9 blah
blah blah 10 blah blah
blah 10 blah 10 blah
blah blah 11 blah blah
blah 11 blah 11 blah
blah blah 12 blah blah
blah 12 blah 12 blah
blah blah 13 blah blah
blah 13 blah 13 blah
blah blah 14 blah blah
blah 14 blah 14 blah
blah blah 15 blah blah
blah 15 blah 15 blah
blah blah 16 blah blah
blah 16 blah 16 blah
blah blah 17 blah blah
blah 17 blah 17 blah
blah blah 18 blah blah
blah 18 blah 18 blah
blah blah 19 blah blah
blah 19 blah 19 blah
blah blah 20 blah blah
blah 20 blah 20 blah
blah blah 21 blah blah
blah 21 blah 21 blah
答案 1 :(得分:2)
我不确定您使用k0
会出现什么问题,但为了让光标返回,您可能会发现使用标记更容易。例如:
2Yjpma ^ A J0 ^ A 瓦特 ^ A `一个
答案 2 :(得分:0)
为什么不:
p
:,+2s/\d\+/\=1+submatch(0)/g "replaces digits by 1+value on all occurences till line + 2
:-2,y "yanks from line - 2 till current line (=last line with replacement)