2012-02-27 45 views
2

命令我的文本东西块像以下 -VIM宏未记录运动在端

blah blah 1 blah blah 
blah 1 blah 1 blah 

欲每个I粘贴时间复制的n倍数量,但递增整数(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 

我把光标放在块的开始,并开始录制到Reg一个与 '质量保证' 和类型“y2jp ^A J0宏^AW¯¯^A k0'。在英语中 - 复制并粘贴块,递增每个数字并返回到新粘贴块的开头,以便可以再次运行宏。

除了最后的'k0'部分外,一切都正常,它不会将光标移动到新粘贴块的开始位置。任何人都可以指出我做错了什么?

编辑

当我运行提出了宏观的你@sehe我获得以下 -

等等等等1等等等等等等 1等等等等1 等等等等等等1 blahj0.w.yk0 等等1等等1等等

看起来vim在^ A之后仍然处于插入模式。
: -/

回答

4

我认为有更好的方法来实现你正在做的事情,而且我没有真正看过你的错误的细节,只是这里是一个适用于我的宏:

2Yjp ^A j0.w.yk0

我觉得你在倒车正在做的事情(在顶部插入?) - 问题威力一直光标couldn别动了重新第一行(?没有测试过)。

不管怎么说,[email protected]后我得到:

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 
2

我不知道什么是您使用的k0去错了,但要得到光标回去,你可能会发现它更容易使用标记。例如:

2Yjpma ^A J0 ^AW¯¯^A`一个

+0

再次在粘贴文本的第一行之后显示文本j0^AW^A'a。 – Raminder 2012-02-27 13:53:35

+0

@Raminder:难道你是复制/粘贴宏,并获得“^”和“A”作为单独的字符,而不是Ctrl-a?然后“A”会让你进入插入模式。 – kyoto 2012-02-27 13:59:07

+0

你说得对。有用 :) – Raminder 2012-02-29 13:14:57

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)