【发布时间】:2012-05-29 22:35:15
【问题描述】:
在 vim 中,我想通过 all 缓冲区中的 all 更改按时间顺序撤消。
例如,在 vim 会话中,我通常打开许多选项卡,每个选项卡中有许多窗口。使用u 撤消(或g; / g, 移动通过更改列表),vim 移动通过对 那个 缓冲区所做的更改,即使在其他缓冲区中有最近所做的更改。 (我承认,这是我大部分时间想要的。)
但是有没有办法按时间顺序返回所有缓冲区的变化? (我想 vim 会从一个标签跳到另一个标签,这没关系。)
为什么这会有用? ...主要是这样当我在休息后恢复编码时,我可以提醒自己“我在做什么”,即我上次所做的所有更改。
(使用 macvim 7.3)
更新:关于使用 git / mercurial 的回应很有意义(特别感谢git stash),但我仍然觉得这个功能很有用,因为它让我回到最近的变化,按顺序,在 vim 中使用语法着色等等)
【问题讨论】:
-
我认为提交日志是比其他任何东西更好的进度指标。即使您有未完成的更改,也可以向
git stash添加消息。 -
FTR 我同意这里的一般观点:使用 VCS。更好的是,使用 DVCS 和微提交!
-
另一个用例:我刚刚花了 5 分钟进行过于激进的重构。现在大量的单元测试都失败了,我不知道我破坏了什么。我想撤消,直到测试再次通过。是的,如果我想在重构之前检查版本控制,那会很好,但我没有想到。
标签: vim