舫摘

知人者智 自知者明 胜人者有力 自胜者强

0%

每日Vim插件--vim 撤销树Gundo.vim

今天介绍的插件很有意思,也非常有用,也是我最常用的插件之一——Gundo.
大家都知道按u可以撤销操作,但是一般都不知道输入命令:undolist会显示可撤销列表,如图

其实这还不是列表,而是整个vim 撤销树的叶子。为什么说是树,而不是列表,举个例子就明白了:
你在a状态做了一次修改到b,又回退到a,再做了一次修改到c。大多数编辑器比如sublime text,b这个状态就没了,但是vim会用一个树进行保存。
而Gundo这个插件就是一个撤销树浏览器.直接上张图:

当前位置以@标注,其他历史以o标注。
jk上下移动,就可以在下面的窗口看到对应修改之前的改动。这个就是普通的vim窗口,所有的移动操作都是支持的,比如G到底部,C-U上翻页等。
p可以查看选中状态和当前状态的差异,按回车就会回到选中状态,按P更是可以一步步播放到选中状态,高上大啊……
btw,我习惯将所有的undo记录都保存下来,即使关闭了vim或者buffer也能继续撤销。
只需要稍加配置,就能将撤销树持久化存储下来:

1
2
3
4
5
try
set undodir=~/.vim/temp_dirs/undodir
set undofile
catch
endtry