vim - 撤消所有缓冲区/窗口/打开的文件等

标签 vim

在 vim 中,我想按时间顺序撤消所有缓冲区中的所有更改。

例如,在 vim session 中,我通常打开许多选项卡,每个选项卡中有许多窗口。使用 u要撤消(或 g;/g, 以在更改列表中移动),vim 会移动对该缓冲区所做的更改,即使其他缓冲区中有最近所做的更改。 (我承认,这是我大部分时间想要的。)

但是有没有办法按时间顺序返回所有缓冲区的变化? (我想 vim 会从一个选项卡跳到另一个选项卡,这没问题。)

为什么这会有用? ...主要是当我休息后继续编码时,我可以提醒自己“我在做什么”,即我上次所做的所有更改。

(使用 macvim 7.3)

更新:关于使用 git/mercurial 的回答是很好的点(特别感谢 git stash ),但我仍然觉得这个功能很有用,因为它让我按顺序回到最近的更改,语法着色,在 vim 内等)

最佳答案

您可以通过 undolist 取得很大进展:

:bufdo echo expand('%') | undolist

结果,例如对于简单的编辑 session :
SpiritParser.cpp
number changes  when               saved
     1       1  13:57:51
SpiritParser.h
number changes  when               saved
     1       1  13:57:55

要对所有可见窗口执行此操作,请执行 windo而不是 bufdo .如果您有多个标签,请制作
:tabdo windo echo expand('%') | undolist

关于vim - 撤消所有缓冲区/窗口/打开的文件等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10718923/

相关文章:

vim - 在 vim 中创建依赖于另一个语法文件的语法文件的正确方法

postgresql - '( 在 Vim 语法区域(特别是在 pgsql.vim 中)是否表示任何特殊含义?

vim - 在 vim 中,如何用空格替换正则表达式模式?

python - 如何映射 F4 在 vi​​m 上运行无名文件?

python - Vim:警告:不输出到终端

vim - 如何一键跳转到最右边的窗口?

vim - 如何在失去焦点时使用自动命令退出插入模式?

vim - 在vim中以可视模式复制行

VIM:每个拆分中的不同字体大小

java - 如何在 Vim 中编译 java