与此问题类似,是否有命令重做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个变化.