vim persistent undo无法正常工作

时间:2013-09-18 10:02:18

标签: vim undo persistent

我正在尝试使用vim 7.4.9持久撤消

在我的vimrc中,我有:

set undodir=/home/myname/.vim/undo//
set undofile
set undolevels=1000
set undoreload=10000

当然/home/myname/.vim/undo目录存在。

我用vim打开了一些文件并进行了一些更改。

我在/home/myname/.vim/undo /中看到了undofiles:

$ ll /home/myname/.vim/undo/
total 23K
-rw-r--r-- 1 hpcpcollab hpcpcollab  523 18 sept. 11:23 %home%myname%foo
-rw-r--r-- 1 hpcpcollab hpcpcollab  14K 18 sept. 11:03 %home%myname%bar
-rw-r--r-- 1 hpcpcollab hpcpcollab 2,2K 18 sept. 11:52 %home%myname%test

然而,当我关闭这些文件时,重新打开它们,并按“u”以撤消,vim回复:“已经是最早的更改”。

我错过了什么?

THX

于连

3 个答案:

答案 0 :(得分:2)

修补7.4.24可能会解决您的问题吗? 在任何情况下,尝试使用:verbose :rundo ~/.vim/undo/undofile显式读取undofile并查看Vim报告的错误。这应该有助于本地化问题,为什么vim不使用undofile。

答案 1 :(得分:0)

我不知道原因,但您可以使用解决方法。在加载要编辑的文件后,创建一个autocommand,读取保存undo历史记录的目录:

au FileReadPost * rundo /home/myname/.vim/undo

答案 2 :(得分:0)

除了//定义末尾的undodir之外,我的配置完全相同。尝试删除它们。您还可以尝试使用:undolist命令查看vim是否真正读过某些内容。

我建议您使用Gundo插件来管理撤消树吗?它是我正在使用的最强大的插件之一,它提供了很多功能来管理vim中的undo / redo。

相关问题