0

我有一个大型配置文件,我正在根据部分将其拆分为单独的配置文件。

我的工作流程是这样的:

  • 可视选择主文件中的文本块 (v)
  • 将文本剪切到终止缓冲区 (d)
  • 打开一个新缓冲区 (:sp newfile.pp)
  • 粘贴文本 (p)
  • 用新名称保存文件并关闭缓冲区 (:wq! somefile.pp)

我尝试创建一个宏来执行此操作,基本上采取上述步骤,但在剪切文本之前添加 (qa),并在粘贴后再次添加 q。一旦新缓冲区打开,我的宏就会停止并且不会运行粘贴命令。我必须手动完成。

理想情况下:上述这些步骤将完成到我只剩下 :wq! 进入命令行只是在等待我提供文件名并按 Enter 关闭并保存缓冲区。

这可能吗?如果不编写脚本,我将如何完成它?

编辑

找到了另一种更快的方法来做同样的事情:

  • 视觉选择文本
  • 开始输入 (:) 命令.. vim 有用地为命令行添加前缀以指示对您的选择进行的操作
  • :w 文件名.pp
  • 使用 (gvd) 删除块

不过,仍然很好奇为什么我录制的宏在创建新缓冲区时会停止。

4

1 回答 1

2

我和你有同样的问题。我发现 p 之后的 q 并没有停止宏录制。我希望这就是你所看到的。要使用您可以运行的内容填充寄存器 a(^@ 由 ctrl-v、ctrl-j 输入):

let @a="d:sp! newfile.pp^@p"
于 2013-07-18T16:13:19.263 回答