首先看一下在Vim旅行的时间命令ea {N}s
和lat {N}s
,我觉得它很简单。但是,它没有按预期为我工作,现在我完全糊涂了。这就是发生的事。
我解雇了我的Vim,并开始编写以下行
say, first line written at time 5
second line written after a pause of 5 seconds may be around time 18
third line again after a pause of 5 seconds around 30
所以,假设如果我开始在00:00:00
写作,我按00:00:05
完成第1行,然后暂停了5 seconds
,然后00:00:18
完成了第2行然后再次暂停约5秒钟,并按00:00:30
完成最后的第三行。然后我想到了一个早先的状态,持续了5秒,但当我做了:ea 5s 时,我留下了以下内容:
say, first line written at time 5
vim底部的行说
2 fewer lines; before #2 67 seconds ago
我真的很困惑。然后,我检查了ea /之前命令的帮助,我看到了:
:earlier {N}s Go to older text state about {N} seconds before.
Vim对关于的意思是什么?这不确切吗?它根本没有任何意义吗?有人可以解释一下吗?
注意:提到的时间可能会有1-2秒的变化。
答案 0 :(得分:5)
您是否在每行之后离开插入模式?!通常认为尽快退出插入模式是最佳做法;按 Enter 并等待5秒可能不足以构成新的更改。
您可以在<C-g>u
插入(也在一行内)时强制创建撤消点。
正如@sehe已经评论过的那样,:changes
命令是一个很好的起点。像Gundo - Visualize your undo tree(需要Python)或undotree.vim - Display your undo history in a graph(不)这样的插件可以更轻松地导航和调用树。
答案 1 :(得分:4)
我认为
:changes
和
:undolist
应该有助于了解历史记录的实际存储方式。从这里很难说出你的情景如何无法满足你的期望(两者都有点模糊)。我只想说当我回顾你的编辑步骤(有时间)时,我得到了:
change line col text
3 1 0 say, first line written at time 5
2 2 0 second line written after a pause of 5 seconds may be around time 18
1 3 0 third line again after a pause of 5 seconds around 30
>
number changes when saved
4 4 17:01:19