【问题标题】:vim temporary disable undo?vim 临时禁用撤消?
【发布时间】:2013-07-31 22:38:26
【问题描述】:

我跟随add-custom-header-to-your-file 创建了我自己的自定义标头插件。当我保存文件时,它会自动。将当前日期时间更新为 Last-Modified 字段。但这会将编辑历史记录添加到撤消列表中。如何暂时禁用撤消?

【问题讨论】:

    标签: vim plugins


    【解决方案1】:

    您无法在不丢失撤消历史记录的情况下禁用撤消。想想撤销的实现;如果你有一个缺口,那就很难了。

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

    :set undolevels=-1
    

    (然后恢复到以前的值)就可以了。此外,:undojoin 可用于将两个原本独立的条目融合在一起。但在您的情况下,最好将(自动)更改保留在撤消历史记录中。

    【讨论】:

    • 感谢@Ingo,可以在下面看到我的评论吗?因为stackoverflow的注释不支持多行代码。所以我改为发布答案。
    • :undojoin有其他问题;撤消后不允许这样做。我坚持我的建议,即只允许 Vim 将自动修改保留在其撤消历史记录中。
    • 顺便说一句,你不需要重新发明轮子。那里有几个这样的插件;看看我的AutoAdapt plugin;该页面包含指向备选方案的链接。
    • 感谢@Ingo,目前我找不到更好的解决方案。我仍在考虑听从您的建议,或者只是删除更新功能。因为对我来说还是有点烦。对于您的 AudoAdapt,我无法使其正常工作。它只会运行第一条规则。我不知道是不是因为我使用 VAM 来管理插件。无论如何谢谢 :)~ 希望 VIM 能有更好的解决方案。正如您提到的,撤消机制的底层难以实现来支持这一点。我不太同意。他们可以添加一些功能,例如忽略行来撤消机制。
    • @Pencilcheck ...不过,这是一个完全不同的问题。交换文件与撤消无关。
    猜你喜欢
    • 2013-07-29
    • 2010-12-06
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 2011-05-07
    • 2015-08-13
    • 2011-08-12
    相关资源
    最近更新 更多