.
的文档说:
重复上一次更改,将计数替换为[count]。
是否可以重复一次更改而无需更换计数而无需使用宏?
或者,是否可以多次重复更改而不将数字解释为命令的计数值?
上下文:
我正在进行this VimGolf挑战,目标是扭转字母表:
abcdefghijklmnopqrstuvwxyz
变为zyxwvutsrqponmlkjihgfedcba
我的方法是跳转到z并使用"Ax
将每个字母附加到寄存器a
,然后粘贴寄存器a,其中包含反转的字符串。若要重复"Ax
,录制宏并使用25@q
有效,请按.
26次,但26.
和26"Ax
不起作用,因为26适用于x
的计数,使命令尝试删除光标右侧的26个字符。
答案 0 :(得分:3)
你需要的是宏,而不是[count].
因为.
重复最后一个cmd。如果你给它计数,正如你所看到的那样,计数将应用于最后一个cmd,因此它将是26x
,而不是pressing x 26 times
。通常没有区别,但如果您的光标位于该行的末尾,则26x
与x
相同。
你需要的是一个宏,如果你不想qx...q
,你可能想知道一些技巧:(没有考虑过多的击键次数)
使用=
注册:
26@='"Ax'<cr>
这就是你想要的。
使用.
注册。
假设在起点处,光标位于第1行col1上,请按:A"Ax<esc>U26@.
第一个A
跳转到EOL并输入INSERT,大U
撤消当前行的插入文本,保存到&#39;。&#39; (点)注册。
现在你可以重播&#34; reg 26次。
关于这一挑战,最直接的解决方案(可能不是最短的)将是:set revins
选项,简而言之:se ri
。