在宏期间无法抽取/粘贴注册

时间:2016-02-27 15:05:19

标签: vim

我有一个文件,我需要进行大量编辑,看起来像这样:

hello[link](#hello)

world[link](#world)

我希望最终得到:

<a name="hello"></a>
hello[[link](#hello)]

<a name="world"></a>
world[[link](#world)]

现在我的宏看起来像下面这样。通过/link

手动移动光标后

wwyt)O<a name="<Esc>pa"></a>

一直工作直到我需要从yank寄存器粘贴,此时它才会死掉。我也尝试用"*y / "*p指定寄存器但没有运气。任何想法发生了什么以及我如何解决它?

2 个答案:

答案 0 :(得分:0)

以下是您可以尝试的内容:

  • 转到文件的第一个字符(gg
  • 开始录制宏(qq
  • ywi<a name=" ESC pli"></a> 输入
  • 停止录制宏并应用于其他行

答案 1 :(得分:0)

此命令将转换遵循规则的所有非空行。

g/./s#\v([^[]*)(.*)#<a name="\1"></a>\r\1[\2]#