2012-08-09 54 views
1

我已启用undodir,以便跟踪我关闭vim会话后所做的更改。手动启用undodir,需要时

我有时想编辑一个文件,进行一些更改,保存它,然后返回到该会话的原始文件。 (这可能是其中一种可能的用例)

如果我禁用了undodir,我可以简单地保持击中u,直到它向我显示一条消息。

所以我想undodir默认情况下在undo/redo中被禁用,我应该有一个命令来在需要时启用它。

必须始终以任一状态跟踪文件的所有更改。

这可能吗?

+0

你的意思是'undofile'选项? – kev 2012-08-09 12:35:12

回答

2

据我了解的文件,只有设置undodir什么都不做,除非undofile设置为true

所以,我假设你想为某些文件激活undofile

首先要记住的是modeline,以便为某些文件设置undofiletrue。但不幸的是,这不起作用。

但是,该问题存在于vim开发人员邮件列表中,并且在1月份提供了一个修复程序:http://comments.gmane.org/gmane.editors.vim.devel/32896。目前来源中可能存在此修复程序;所以,如果你想尝试一下,获取最新的vim的根源,建立并检查,如果你能使用的模式来设置udf

,直到有包含固定的正式版本,你可以使用undofile.vim得到解决您的问题。它摘录的描述:

如果你想'undofile只针对某些文件,您会发现,“undofile”不能在模式行进行设置,或者一旦缓冲区被加载(因为现有的撤销文件将不会被加载)。 Bram建议使用BufReadPre autocmd,在加载缓冲区之前设置'undofile'。该脚本为您执行这些步骤。