假设我做了3次更改,C1,C2和C3。
然后我撤消X3。然后我重做X3。我回到了我开始的地方。
然后我再次撤消X3,但后来我不小心输入了ifoo<Esc>
。我现在可以做些什么来恢复变化#3?
答案 0 :(得分:8)
Vim的特别之处在于它不仅存储编辑(和撤消)的线性历史记录,而且实际上是所有分支!您可以使用g-
和g+
命令移动它们,并使用:earlier
命令按计数,秒,分钟等移动到文本状态。请参阅:help undo-branches
和:help usr_32.txt
了解详情。
因为这种类型的导航仍然在精神上负担过重(并且不想在可能很大的撤销树中丢失!),undotree.vim - Display your undo history in a graph和Gundo - Visualize your undo tree插件提供了更好的可视化,包括差异以查看每个州的变化。
答案 1 :(得分:5)
鉴于该序列,您应该能够输入g-
( g - )一次以返回更改3.您可能想要打开另一个Vim实例并测试它以验证它是否符合你的要求。
输入:h undo-branches
以获取更多信息。