Vim如何临时禁用撤销功能?

3

我按照添加自定义标题的方法创建了自己的自定义标题插件。当我保存文件时,它会自动更新当前日期时间到Last-Modified字段。但是这样会在撤销列表中添加编辑历史记录。我如何暂时禁用撤销功能?

1个回答

7

如果您要禁用撤销功能,则会同时失去撤销历史记录。请考虑撤销功能的实现方式,如果有缺口将会非常困难。

如果您不担心失去历史记录,

:set undolevels=-1

然后恢复到先前的值就可以了。此外,:undojoin 可以将两个本来分开的条目合并在一起。但是在您的情况下,最好将(自动化)更改保留在撤消历史记录中。


谢谢@Ingo,你能看到我下面的评论吗?因为stackoverflow的评论不支持多行代码。所以我发了一个回答。 - Payne Chu
:undojoin存在其他问题;在撤销之后是不允许使用的。我坚持我的建议,只允许Vim将自动修改保留在其撤销历史记录中。 - Ingo Karkat
顺便说一句,你不需要重新发明轮子。有一些插件可以使用;请查看我的 AutoAdapt插件;该页面链接到其他替代品。 - Ingo Karkat
感谢@Ingo,目前我还没有找到更好的解决方案。我仍在考虑遵循您的建议或者只是删除更新功能。因为对我来说仍然有点烦人。对于您的AudoAdapt,我无法使其正常工作。它只会运行第一个规则。我不知道是不是因为我正在使用VAM来管理插件。无论如何,谢谢 :)~ 希望VIM在未来能有更好的解决方案。正如您所提到的,撤销机制的底层实现难以支持此功能。我并不完全同意。他们可以添加一些像忽略行这样的函数到撤销机制中。 - Payne Chu
更好的答案。禁用大文件的交换文件。 - Pencilcheck
1
@Pencilcheck...不过这完全是另一个问题。交换文件与撤消无关。 - Ingo Karkat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接