必要时手动启用undodir

时间:2012-08-09 12:07:21

标签: vim

我已启用undodir,以便在我关闭vim会话后跟踪我所做的更改。

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

如果我undodir被禁用,我可以直接点击u,直到它向我显示消息。

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

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

这可能吗?

1 个答案:

答案 0 :(得分: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'。这个脚本为你完成了这些步骤。