7

我正在尝试对 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/ 中创建的撤消文件:

$ 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 回复:“已经在最旧的更改”。

我错过了什么?

谢谢

朱利安

4

3 回答 3

3

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

于 2013-09-18T13:20:06.793 回答
1

除了定义//末尾的之外,我的配置完全相同。undodir尝试删除那些。你也可以试试这个:undolist命令,看看 vim 是否真的读到了一些东西。

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

于 2013-09-18T12:44:10.423 回答
0

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

au FileReadPost * rundo /home/myname/.vim/undo
于 2013-09-18T10:50:47.000 回答