我正在尝试使用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
于连
答案 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。