重做所有未完成的更改

Zoe*_*wll 1 vim undo-redo

此问题类似,是否有命令重做vim中所有未完成的更改?目前我所知道的只是1000<C-R>或类似,只是重做大量的更改,但它感觉很麻烦,而且相当随意.

小智 5

尝试 :exec 'undo' undotree()['seq_last']

这将重做每个更改,直到最新的更改.

如果你想将它映射到类似ctrl+ shift+的东西R.将其放在您的vimrc文件中:

nnoremap <C-S-R> :exec 'undo' undotree()['seq_last']<CR>

说明

undo {N} 跳转到撤消树中的第n个更改.

undotree() 是一个返回具有撤消树状态的字典的函数.

undotree()['seq_last']查找seq_last词典中的键.

:help undotree我们看到与之相关的值seq_last是: The highest undo sequence number used.

:exec从表达式中计算字符串.比方说,undotree()['seq_last']回报42.这个例子中的表达式将undo 42带给我们最新的变化,即第42个变化.