VIM::撤消指定文本上或周围的更改
在VIM中,是否可以撤消特定文本块上或周围的更改?假设我在VIM::撤消指定文本上或周围的更改,vim,undo-redo,Vim,Undo Redo,在VIM中,是否可以撤消特定文本块上或周围的更改?假设我在“如果是”“的右上方更改了A,然后在文件的其他位置更改了B、C、D和E。如果是,是否可以告诉vim“撤销中+/-10行中的更改?” 我发现这是不可能的,或者至少在vanilla vim中是不可能的。有人知道有什么插件允许这种行为吗?有了这个插件,你可以轻松地在撤销树中移动 因此,只需返回到原始部分(如果是,则在附近),用ma标记它 返回到树上的上一个状态(即使它撤消了其他更改) 将要保留的区域复制(拖动)到寄存器中(例如,通过选择可视线-
“如果是”
“的右上方更改了A,然后在文件的其他位置更改了B、C、D和E。如果是,是否可以告诉vim“撤销中+/-10行中的更改?”
我发现这是不可能的,或者至少在vanilla vim中是不可能的。有人知道有什么插件允许这种行为吗?有了这个插件,你可以轻松地在撤销树中移动
因此,只需返回到原始部分(如果是,则在附近),用ma
标记它
返回到树上的上一个状态(即使它撤消了其他更改)
将要保留的区域复制(拖动)到寄存器中(例如,通过
选择可视线-V5j)李>
回到实际状态(Gundo树上的最后一项)
跳回要更改的部分('a
)
已删除要还原的节,并将其替换为b
register的内容
@Zsolt的回答可能非常有趣,我必须熟悉一下
我通常做的是,做一些
100g-(返回包含要恢复的内容的历史快照)
使用某种方法猛拉“救援”文本,例如
:12,17yank
999g+(回到历史的尖端)
使用常规编辑操作将拉伸的线恢复到位 (实际上是“Zsolt”:-,但没关系。)谢谢你教我关于g-
和g+
的知识。我其实想用Guno已经有一段时间了,但是我正在运行的服务器使用的是VIM 7.1,这需要7.3:实际上,我已经在一台大型服务器上将VIM编译到我的home dir中,该服务器不会很快从VIM 6.0升级;-)我尝试在没有root访问权限的情况下从src编译,并配置关于缺少“ncurses”的投诉(错误):L没有root我无法安装它:O