在Vim意外更改后重做

时间:2013-11-21 15:30:16

标签: vim undo

假设我做了3次更改,C1,C2和C3。

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

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

2 个答案:

答案 0 :(得分:8)

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

插件推荐

因为这种类型的导航仍然在精神上负担过重(并且不想在可能很大的撤销树中丢失!),undotree.vim - Display your undo history in a graphGundo - Visualize your undo tree插件提供了更好的可视化,包括差异以查看每个州的变化。

答案 1 :(得分:5)

鉴于该序列,您应该能够输入g- g - )一次以返回更改3.您可能想要打开另一个Vim实例并测试它以验证它是否符合你的要求。

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