vim 1.14源代码undo.c

时间:2014-01-27 03:51:36

标签: vim undo

我正在阅读vim 1.14的代码,我对undo.c有一些疑问。

我不理解undo / redo操作的实现,特别是在函数u_undoredo()中。

我想知道为什么它使用链接列表u_entry

1 个答案:

答案 0 :(得分:2)

如果您查看最新版本的vim,可以在undo.c文件的顶部解释vim的撤消/重做实现。

您可以阅读here

  

每个u_entry列表包含一个撤消或重做的信息。

链接列表对于要使用的撤消/重做实现是有意义的,因为每个条目只需要引用下一个或上一个条目,并且可以轻松有效地添加。这也是vim的撤消历史记录创建撤消历史记录的多个分支的原因。除此之外,我不确定你的问题是什么。