使用vimdiff一次获取多个更改

时间:2013-04-22 13:39:18

标签: vimdiff

我正在使用vimdiff将来自其他组文件的更改合并到我们的文件中。 并非所有更改都应该被接受,因此我必须手动完成。 但是,我想知道是否有办法告诉vimdiff立即接受几个更改。 即,我希望能够立即接受接下来的10个更改,而不是只接受下一个更改。 现在我正在使用“] c”跳转到下一个更改并“执行”以接受该更改。 该文件是250000行,我只在5000行...

此致 Hagai

1 个答案:

答案 0 :(得分:1)

简而言之,你可以用宏完成你想要的东西:

  1. 在正常模式下,按'q'和随机字母,让我们说'f':这将开始在寄存器'f'中录制一个宏。
  2. 执行您想要重复的操作:在这种情况下,'] c'和'do'。
  3. 停止录制宏:再次按'q'。
  4. 现在您可以在正常模式下键入'@ f'来使用它,它将重播宏'f'中记录的操作。从那里你有几个选择:

    • 如果您输入'@@',vim将重播最后一个宏。提示:如果您只是将组合按在键盘上,它将会非常快速地逐行完成。
    • 如果您输入'1000 @ f',vim将重播最后一次1000次,这正是您所寻找的。
    • 如果你想保存一些打字,你可以录制一个新的宏,即'g'表现'1000 @ f',那样'@g'会叫'1000 @ f',尽管如果你使用'@@'在'@g'之后,它将逐行完成。

    这里有一个很好的教程: http://www.thegeekstuff.com/2009/01/vi-and-vim-macro-tutorial-how-to-record-and-play/