我已启用undodir
,以便在我关闭vim会话后跟踪我所做的更改。
我有时想编辑文件,进行一些更改,保存,然后返回到该会话的原始文件。 (这可能是可能的用例之一)
如果我undodir
被禁用,我可以直接点击u
,直到它向我显示消息。
所以我希望默认情况下在undo / redo中禁用undodir
,我应该有一个命令在需要时启用它。
必须始终在任一状态下跟踪对文件的所有更改。
这可能吗?
答案 0 :(得分:2)
据我了解文档,只有设置undodir
才会执行任何操作,除非undofile
设置为true
。
因此,我假设您要为某些文件激活undofile
。
首先想到的是modeline,以便为某些文件设置undofile
到true
。但不幸的是,这不起作用。
然而,这个问题出现在vim开发人员邮件列表中,1月份提供了一个修复程序:http://comments.gmane.org/gmane.editors.vim.devel/32896。此修复可能存在于当前来源中;所以,如果您想尝试,请抓住最新的vim来源,构建它并检查是否可以使用模式行来设置udf
在包含该修补程序的正式版之前,您可以使用undofile.vim
解决您的问题。摘录它的描述:
如果您只想对某些文件使用'undofile',您会注意到'undofile'无法在模式行中设置,或者一旦加载了缓冲区(因为现有的撤消文件不会然后加载)。 Bram建议使用BufReadPre autocmd,在加载缓冲区之前设置'undofile'。这个脚本为你完成了这些步骤。