在Vim意外更改后重做

use*_*725 5 vim undo

假设我做了3个更改,C1,C2和C3.

然后我撤消X3.然后我重做X3.我回到了我开始的地方.

然后我再次撤消X3,但后来我不小心打字了ifoo<Esc>.我现在可以做些什么来恢复变化#3?

Ing*_*kat 8

Vim的特殊之处在于它不仅存储编辑(和撤消)的线性历史记录,而且实际上是所有分支!您可以使用g-g+命令,通过它们移动,以及:earlier命令的数量,秒,分钟等见移到文本状态:help undo-branches:help usr_32.txt了解详情.

插件推荐

因为这种导航仍然在精神上很重要(并且不想在可能很大的撤销树中丢失!),undotree.vim - 在图形中显示撤消历史记录Gundo - 可视化撤消树插件提供了更好的可视化,包括差异,以查看每个州的变化.


Mar*_*ins 5

给定该序列,您应该能够键入g-(g-)一次以返回更改3.您可能想要打开另一个Vim实例并对其进行测试以验证它是否符合您的要求.

输入:h undo-branches以获取更多信息.