1

我正在使用 vimdiff 将另一个组文件中的更改合并到我们的文件中。并非所有更改都应该被接受,所以我必须手动进行。但是,我想知道是否有办法告诉 vimdiff 一次接受几个更改。即,我希望能够一次接受接下来的 10 个更改,而不是只接受下一个更改。现在我正在使用 "]c" 跳转到下一个更改并使用 "do" 来接受该更改。该文件是 250000 行,我只在第 5000 行...

真诚的,哈盖

4

1 回答 1

1

简而言之,您可以使用宏完成您想要的功能:

  1. 在正常模式下,按“q”和一个随机字母,让我们说“f”:这将开始在寄存器“f”中录制一个宏。
  2. 执行您要重复的操作:在本例中为 ']c' 和 'do'。
  3. 停止录制宏:只需再次按“q”。

现在您可以通过在正常模式下键入“@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/

于 2013-12-28T02:57:30.550 回答