VIM ::撤消指定文本上或周围的更改

在VIM中,是否可以撤消特定文本块上或周围的更改?假设我在
"if yes"
上方进行了更改A,然后在文件的其他位置更改B,C,D和E.是否有可能告诉vim“撤消从
if yes
+ +- 10行中完成的更改? 我遇到了另一个问题,暗示这是不可能的,或者至少在vanilla vim中。有没有知道任何允许这种行为的插件?     
已邀请:
使用此插件:http://www.vim.org/scripts/script.php?script_id = 3304,您可以轻松地在撤消树中移动。 所以回到原来的部分(大约
if yes
),用
ma
标记, 回到它在树上的先前状态(即使它撤消其他更改)。 复制(猛拉)您要保留的区域到寄存器(例如选择视线 -
V5j"by
)。 回到实际状态(Gundo树上的最后一项)。 跳回要更改的部分(
'a
) 删除了要还原的部分,并将其替换为
b
寄存器的内容。     
@ Zsolt的答案可能非常有趣,我必须熟悉它。 我通常做的是做类似的事情 100g-(返回包含要恢复的事物的历史快照) 使用某种方法拉出“救援”文本,例如
:12,17yank
999g +(返回历史尖端) 使用常规编辑操作将拉出的线条恢复到位。     

要回复问题请先登录注册