2013-07-18 99 views
0

我有一个大的配置文件,我正在根据章节拆分为单个文件。在vim中通过缓冲区继续执行一个宏

我的工作流程是这样的:

  • 视觉选择文本的主文件中的块(五)
  • 剪切文本剪切缓冲区(d)
  • 打开一个新的缓冲区( :SP newfile.pp)
  • 将文本粘贴(p)
  • 保存使用新名称的文件,关闭缓冲区(:WQ somefile.pp)

我试图创建一个宏来做到这一点,基本上采取了上述步骤,但在剪切文本之前添加(q a),并在粘贴后再次q。一旦新缓冲区打开,我的宏就会停止,并且不会运行粘贴命令。我必须亲自去做。

理想情况下:上述步骤将完成到我将留下:wq!进入命令行只是等待我给一个文件名,然后按回车关闭并保存缓冲区。

这是可能的,我怎样才能在没有写脚本的情况下完成它?

编辑

发现了另一种更快的方式做同样的事情:

  • 视觉选择文本
  • 开始键入(:)命令.. VIM有益前缀的命令用于指示您选择的操作
  • :w filename.pp
  • 用(g v d)删除块

尽管如此,仍然好奇为什么我的记录宏停止了。

+0

这似乎为我Vim版本7.3 – FDinoff

回答

2

我和你有同样的问题。我发现p后的q没有停止宏录制。我希望这是你所看到的。要填充注册的内容,你可以运行(该^ @由CTRL-V进入,CTRL-J):

let @a="d:sp! newfile.pp^@p" 
+0

这一工程的工作!如果我从命令行手动停止宏录制,而不是仅仅点击命令,则一切都会顺利进行。并非常感谢注册命令:) –