4

在 VIM 中是否可以撤消特定文本块上或周围的更改?假设我在上面进行了更改 A "if yes",然后在文件的其他位置更改了 B、C、D 和 E。是否可以告诉 vim“撤消在 +/- 10 行中完成的更改if yes

我遇到了另一个问题,表明这是不可能的,或者至少在香草 vim 中是不可能的。有没有人知道任何允许这种行为的插件?

4

2 回答 2

10

@Zsolt 的回答可能很有趣,我必须熟悉它。

我通常做的是,做类似的事情

100g-(返回包含您要恢复的内容的历史快照)

使用某种方法拉出你的“救援”文本,例如

:12,17yank

999g+(回到历史的尖端)

使用常规编辑操作将被拉出的线恢复到位。

于 2011-04-07T23:16:31.550 回答
4

使用这个插件:http ://www.vim.org/scripts/script.php?script_id=3304您可以轻松地在撤消树中移动。

  1. 所以只要回到原来的部分(周围 ),用,if yes标记它ma
  2. 返回到它在树上的先前状态(即使它撤消了其他更改)。
  3. 将要保留的区域复制(拉出)到寄存器(例如,选择视觉线条 - V5j"by)。
  4. 回到实际状态(Gundo 树上的最后一项)。
  5. 跳回您要更改的部分 ( 'a)
  6. 删除了要还原的部分,并将其替换为bregister 的内容。
于 2011-04-07T19:38:39.277 回答